Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C# - Warisan

Salah satu konsep terpenting dalam pemrograman berorientasi objek adalah pewarisan. Warisan memungkinkan kita untuk mendefinisikan kelas dalam istilah kelas lain, yang membuatnya lebih mudah untuk membuat dan memelihara aplikasi. Ini juga memberikan kesempatan untuk menggunakan kembali fungsionalitas kode dan mempercepat waktu implementasi.

Saat membuat kelas, alih-alih menulis anggota data dan fungsi anggota yang benar-benar baru, pemrogram dapat menetapkan bahwa kelas baru harus mewarisi anggota kelas yang ada. Kelas yang ada ini disebut basis kelas, dan kelas baru disebut sebagai turunan kelas.

Ide pewarisan mengimplementasikan IS-A hubungan. Misalnya, mamalia ADALAH A hewan, anjing IS-A mamalia maka anjing IS-A hewan juga, dan sebagainya.

Kelas Dasar dan Turunan

Sebuah kelas dapat diturunkan dari lebih dari satu kelas atau antarmuka, yang berarti kelas tersebut dapat mewarisi data dan fungsi dari beberapa kelas dasar atau antarmuka.

Sintaks yang digunakan dalam C# untuk membuat kelas turunan adalah sebagai berikut −

<acess-specifier> class <base_class> {
   ...
}

class <derived_class> : <base_class> {
   ...
}

Pertimbangkan kelas dasar Bentuk dan kelas turunannya Persegi Panjang

Demo Langsung
using System;

namespace InheritanceApplication {
   class Shape {
      public void setWidth(int w) {
         width = w;
      }
      public void setHeight(int h) {
         height = h;
      }
      protected int width;
      protected int height;
   }

   // Derived class
   class Rectangle: Shape {
      public int getArea() { 
         return (width * height); 
      }
   }
   class RectangleTester {
      static void Main(string[] args) {
         Rectangle Rect = new Rectangle();

         Rect.setWidth(5);
         Rect.setHeight(7);

         // Print the area of the object.
         Console.WriteLine("Total area: {0}",  Rect.getArea());
         Console.ReadKey();
      }
   }
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Total area: 35

Menginisialisasi Kelas Dasar

Kelas turunan mewarisi variabel anggota kelas dasar dan metode anggota. Oleh karena itu objek kelas super harus dibuat sebelum subkelas dibuat. Anda dapat memberikan instruksi untuk inisialisasi superclass di daftar inisialisasi anggota.

Program berikut menunjukkan ini

Demo Langsung
using System;

namespace RectangleApplication {
   class Rectangle {
      
      //member variables
      protected double length;
      protected double width;
      
      public Rectangle(double l, double w) {
         length = l;
         width = w;
      }
      public double GetArea() {
         return length * width;
      }
      public void Display() {
         Console.WriteLine("Length: {0}", length);
         Console.WriteLine("Width: {0}", width);
         Console.WriteLine("Area: {0}", GetArea());
      }
   }//end class Rectangle  
   class Tabletop : Rectangle {
      private double cost;
      public Tabletop(double l, double w) : base(l, w) { }
      
      public double GetCost() {
         double cost;
         cost = GetArea() * 70;
         return cost;
      }
      public void Display() {
         base.Display();
         Console.WriteLine("Cost: {0}", GetCost());
      }
   }
   class ExecuteRectangle {
      static void Main(string[] args) {
         Tabletop t = new Tabletop(4.5, 7.5);
         t.Display();
         Console.ReadLine();
      }
   }
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Length: 4.5
Width: 7.5
Area: 33.75
Cost: 2362.5

Beberapa Warisan dalam C#

C# tidak mendukung pewarisan berganda . Namun, Anda dapat menggunakan antarmuka untuk mengimplementasikan pewarisan berganda. Program berikut menunjukkan ini

Demo Langsung
using System;

namespace InheritanceApplication {
   class Shape {
      public void setWidth(int w) {
         width = w;
      }
      public void setHeight(int h) {
         height = h;
      }
      protected int width;
      protected int height;
   }

   // Base class PaintCost
   public interface PaintCost {
      int getCost(int area);
   }
   
   // Derived class
   class Rectangle : Shape, PaintCost {
      public int getArea() {
         return (width * height);
      }
      public int getCost(int area) {
         return area * 70;
      }
   }
   class RectangleTester {
      static void Main(string[] args) {
         Rectangle Rect = new Rectangle();
         int area;
         
         Rect.setWidth(5);
         Rect.setHeight(7);
         area = Rect.getArea();
         
         // Print the area of the object.
         Console.WriteLine("Total area: {0}",  Rect.getArea());
         Console.WriteLine("Total paint cost: ${0}" , Rect.getCost(area));
         Console.ReadKey();
      }
   }
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Total area: 35
Total paint cost: $2450

Bahasa C

  1. C# Kelas dan Objek
  2. C# Kata Kunci statis
  3. C# Kelas Bersarang
  4. Template Kelas C++
  5. Warisan Python
  6. Kelas Anonim Java
  7. Kelas Java ObjectOutputStream
  8. Java Generik
  9. Kelas File Java
  10. C# - Struktur Program