• R M Lukman Hakim, S.Kom
  • Pemrograman
  • 2020-06-04 12:38:16
Inheritance C# (Basic/Dasar)

C# merupakan bahasa pemrograman yang berorientasi object (OOP) seperti halnya Java. Dalam OOP salah satu konsep terpenting adalah inheritance (Penurunan Sifat dari Object). Dengan inheritance kita dapat menggunakan class atau object yang lain sebagai parent sehingga kita bisa mengubah dan mengambil sifat dari class atau object yang lain untuk membuat object yang baru, dengan cara seperti ini maka akan lebih cepat untuk pembuatan sebuah project.

Dalam pembuatan sebuah class kita tidak selalu harus membuatnya dari awal, kita bisa menurunkan sifat, methods ataupun member dari class lain yang telah ada. Class yang telah ada kita anggap sebagai parent class atau class orang tua sedangkan class yang kita buat dan menurunkan sifat dari parent class kita sebut sebagai child class atau class anak.

Parent Class dan Child Class

Class dapat menurunkan sifat lebih dari satu class yang lain dan juga bisa menurunkan sifat lebih dari satu interface yang lain.

Untuk membuat class yang baru dari class yang lain dalam C# kita bisa menggunakan syntax sebagai berikut:
 

 class 
{
   ...
}
class  : 
{
   ...
}


Berikut adalah contoh program untuk mensimulasikan inheritance, class Shape adalah sebagai parent class sedangkan class Rectangle adalah sebagai child class.
 

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

   // Child 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 program dijalankan akan menghasilkan keluaran sebagai berikut:
 

Total area: 35


Inisialisasi Parent Class

Child class akan menurunkan sifat dari parent class termasuk variable, method serta member parent class yang lain, sehingga kita perlu memanggil constructor dari parent class sebelum child class constructor dibuat. Kita dapat memanggil parent class constructor dengan dengan cara menambahkannya pada inisialisasi list.

Berikut adalah contoh program untuk mengilustrasikan inisialisasi parent class:
 

using System;
namespace RectangleApplication
{
   class Rectangle
   {
      //member variables
      protected double length;
      protected double width;

 
      // Parent constructor initialization
      // Will call from child class
      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  
   
   // Tabletop class inherit from Rectangle Class
   class Tabletop : Rectangle
   {
      private double cost;

 
      // Call constructor parent class with base(l, w)
      // for initialization parent class
      // it's mean call Rectangle(l, w)
      // before execute Tabletop contructor body
      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();
      }
   }
}


Setelah program dijalankan akan membarikan hasil sebagai berikut:
 

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


Multiple Inheritance pada C#

C# seperti halnya C++ yang mensuport multiple inheritance, akan tetapi untuk menggunakan multiple inheritance kita musti menggunakan interface.

Contoh program berikut adalah contoh untuk multiple inheritance pada C#:
 

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

   // Parent class PaintCost
   public interface PaintCost 
   {
      int getCost(int area);

   }
   
   // Derived class
   class Rectangle : Shape, PaintCost
   {
      public int getArea()
      {
         return (width * height);
      }

 
      // Implement getCost method
      // From PaintCost Interface
      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();
      }
   }
}


Setelah program selesai dijalankan akan memberikan output sebagai berikut:
 

Total area: 35
Total paint cost: $2450

 

Source By http://senimankoding.blogspot.com/2016/09/17-inheritance-c-basicdasar.html

Add comment

Jl.Lingkar Utara Bekasi Kel. Perwira Kec. Bekasi Utara (sebelah BSI Kaliabang) Raya Bekasi KM.27 Pondok Ungu

Email : admin@smktarunabangsa.sch.id

Pengumuman

© 2024 SMK Taruna Bangsa Kota Bekasi. All Rights Reserved.