Bahasa C
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.
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 Langsungusing 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
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 Langsungusing 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
C# tidak mendukung pewarisan berganda . Namun, Anda dapat menggunakan antarmuka untuk mengimplementasikan pewarisan berganda. Program berikut menunjukkan ini
Demo Langsungusing 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
Kelas Java PrintStream Dalam tutorial ini, kita akan belajar tentang kelas Java PrintStream dan metode print() dan printf() dengan bantuan contoh. PrintStream kelas java.io package dapat digunakan untuk menulis data keluaran dalam bentuk (teks) yang dapat dibaca secara umum alih-alih byte. Ini mem
Kelas Pembaca Java Dalam tutorial ini, kita akan belajar tentang Java Reader, subclass-nya dan metodenya dengan bantuan sebuah contoh. Reader kelas java.io package adalah superclass abstrak yang mewakili aliran karakter. Sejak Reader adalah kelas abstrak, itu tidak berguna dengan sendirinya. Namun
Apa itu Warisan dalam C#? Warisan adalah konsep penting dari C#. Warisan adalah konsep di mana Anda mendefinisikan kelas induk dan kelas anak. Kelas anak mewarisi metode dan properti dari kelas induk, tetapi pada saat yang sama, mereka juga dapat mengubah perilaku metode jika diperlukan. Kelas anak
Warisan dapat didefinisikan sebagai proses di mana satu kelas memperoleh properti (metode dan bidang) dari yang lain. Dengan menggunakan pewarisan, informasi dibuat dapat dikelola dalam urutan hierarkis. Kelas yang mewarisi sifat-sifat orang lain dikenal sebagai subkelas (kelas turunan, kelas anak)