Bahasa C
Dalam tutorial ini, kita akan belajar tentang pewarisan C# dan jenisnya dengan bantuan contoh.
Dalam C#, pewarisan memungkinkan kita untuk membuat kelas baru dari kelas yang sudah ada. Ini adalah fitur utama Pemrograman Berorientasi Objek (OOP).
Kelas dari mana kelas baru dibuat dikenal sebagai kelas dasar (induk atau superclass). Dan, kelas baru disebut kelas turunan (anak atau subkelas)
Kelas turunan mewarisi bidang dan metode kelas dasar. Ini membantu penggunaan kembali kode di C#.
Dalam C#, kami menggunakan :
simbol untuk melakukan pewarisan. Misalnya,
class Animal {
// fields and methods
}
// Dog inherits from Animal
class Dog : Animal {
// fields and methods of Animal
// fields and methods of Dog
}
Di sini, kita mewarisi kelas turunan Anjing dari kelas dasar Hewan . Anjing kelas sekarang dapat mengakses bidang dan metode Hewan kelas.
using System;
namespace Inheritance {
// base class
class Animal {
public string name;
public void display() {
Console.WriteLine("I am an animal");
}
}
// derived class of Animal
class Dog : Animal {
public void getName() {
Console.WriteLine("My name is " + name);
}
}
class Program {
static void Main(string[] args) {
// object of derived class
Dog labrador = new Dog();
// access field and method of base class
labrador.name = "Rohu";
labrador.display();
// access method from own class
labrador.getName();
Console.ReadLine();
}
}
}
Keluaran
I am an animal My name is Rohu
Dalam contoh di atas, kami telah menurunkan subkelas Anjing dari kelas super Hewan . Perhatikan pernyataannya,
labrador.name = "Rohu";
labrador.getName();
Di sini, kami menggunakan labrador (objek Anjing) untuk mengakses nama dan tampilan() dari Hewan kelas. Ini dimungkinkan karena kelas turunan mewarisi semua bidang dan metode dari kelas dasar.
Juga, kami telah mengakses nama bidang di dalam metode Anjing kelas.
Dalam C#, pewarisan adalah hubungan is-a. Kami menggunakan pewarisan hanya jika ada hubungan is-a antara dua kelas. Misalnya,
Kita dapat menurunkan Anjing dari Hewan kelas. Demikian pula, Apple dari Buah kelas dan Mobil dari Kendaraan kelas.
Saat kami mendeklarasikan bidang atau metode sebagai protected
, itu hanya dapat diakses dari kelas yang sama dan kelas turunannya.
using System;
namespace Inheritance {
// base class
class Animal {
protected void eat() {
Console.WriteLine("I can eat");
}
}
// derived class of Animal
class Dog : Animal {
static void Main(string[] args) {
Dog labrador = new Dog();
// access protected method from base class
labrador.eat();
Console.ReadLine();
}
}
}
Keluaran
I can eat
Pada contoh di atas, kita telah membuat sebuah kelas bernama Animal . Kelas menyertakan metode yang dilindungi eat() .
Kami telah menurunkan Anjing kelas dari Hewan kelas. Perhatikan pernyataannya,
labrador.eat();
Sejak protected
metode dapat diakses dari kelas turunan, kami dapat mengakses eat() metode dari Anjing kelas.
Ada beberapa jenis pewarisan berikut:
Dalam pewarisan tunggal, satu kelas turunan mewarisi dari satu kelas dasar.
Dalam pewarisan bertingkat, kelas turunan mewarisi dari basis dan kemudian kelas turunan yang sama bertindak sebagai kelas dasar untuk kelas lain.
Dalam pewarisan hierarki, beberapa kelas turunan mewarisi dari satu kelas dasar.
Dalam multiple inheritance, satu kelas turunan mewarisi dari beberapa kelas dasar. C# tidak mendukung pewarisan berganda. Namun, kita dapat mencapai pewarisan berganda melalui antarmuka.
Warisan hibrida adalah kombinasi dari dua atau lebih jenis warisan. Kombinasi pewarisan bertingkat dan hierarki adalah contoh pewarisan Hibrida.
Jika metode yang sama ada di kelas dasar dan kelas turunan, metode di kelas turunan menimpa metode di kelas dasar. Ini disebut metode override dalam C#. Misalnya,
using System;
namespace Inheritance {
// base class
class Animal {
public virtual void eat() {
Console.WriteLine("I eat food");
}
}
// derived class of Animal
class Dog : Animal {
// overriding method from Animal
public override void eat() {
Console.WriteLine("I eat Dog food");
}
}
class Program {
static void Main(string[] args) {
// object of derived class
Dog labrador = new Dog();
// accesses overridden method
labrador.eat();
}
}
}
Keluaran
I eat Dog food
Dalam contoh di atas, eat() metode hadir di kelas dasar dan kelas turunan.
Saat kita memanggil eat() menggunakan Anjing objek labrador ,
labrador.eat();
metode di dalam Anjing disebut. Ini karena metode di dalam Anjing menimpa metode yang sama di dalam Hewan .
Perhatikan, kami telah menggunakan virtual
dan timpa dengan metode kelas dasar dan kelas turunan masing-masing. Di sini,
virtual
- memungkinkan metode untuk ditimpa oleh kelas turunanoverride
- menunjukkan metode ini mengganti metode dari kelas dasarPada contoh sebelumnya, kita melihat bahwa metode di kelas turunan menimpa metode di kelas dasar.
Namun, bagaimana jika kita ingin memanggil metode kelas dasar juga?
Dalam hal ini, kami menggunakan base
kata kunci untuk memanggil metode kelas dasar dari kelas turunan.
using System;
namespace Inheritance {
// base class
class Animal {
public virtual void eat() {
Console.WriteLine("Animals eat food.");
}
}
// derived class of Animal
class Dog : Animal {
// overriding method from Animal
public override void eat() {
// call method from Animal class
base.eat();
Console.WriteLine("Dogs eat Dog food.");
}
}
class Program {
static void Main(string[] args) {
Dog labrador = new Dog();
labrador.eat();
}
}
}
Keluaran
Animals eat food. Dogs eat Dog food.
Dalam contoh di atas, eat() metode hadir di kedua kelas dasar Hewan dan kelas turunan Anjing . Perhatikan pernyataannya,
base.eat();
Di sini, kami telah menggunakan base
kata kunci untuk mengakses metode Hewan kelas dari Anjing kelas.
Untuk memahami pentingnya Warisan, mari kita pertimbangkan sebuah situasi.
Misalkan kita bekerja dengan poligon biasa seperti persegi, persegi panjang, dan sebagainya. Dan, kita harus menemukan keliling poligon ini berdasarkan input.
1. Karena rumus untuk menghitung keliling adalah umum untuk semua poligon beraturan, kita dapat membuat Poligon Reguler kelas dan metode calculatePerimeter() untuk menghitung keliling.
class RegularPolygon {
calculatePerimeter() {
// code to compute perimeter
}
}
2. Dan mewarisi Persegi dan Persegi Panjang kelas dari RegularPolygon kelas. Masing-masing kelas ini akan memiliki properti untuk menyimpan panjang dan jumlah sisi karena mereka berbeda untuk semua poligon.
class Square : RegularPolygon {
int length = 0;
int sides = 0;
}
Kami meneruskan nilai length dan sisi untuk menghitungperimeter() untuk menghitung keliling.
Beginilah cara pewarisan membuat kode kita dapat digunakan kembali dan lebih intuitif.
using System;
namespace Inheritance {
class RegularPolygon {
public void calculatePerimeter(int length, int sides) {
int result = length * sides;
Console.WriteLine("Perimeter: " + result);
}
}
class Square : RegularPolygon {
public int length = 200;
public int sides = 4;
public void calculateArea() {
int area = length * length;
Console.WriteLine("Area of Square: " + area);
}
}
class Rectangle : RegularPolygon {
public int length = 100;
public int breadth = 200;
public int sides = 4;
public void calculateArea() {
int area = length * breadth;
Console.WriteLine("Area of Rectangle: " + area);
}
}
class Program {
static void Main(string[] args) {
Square s1 = new Square();
s1.calculateArea();
s1.calculatePerimeter(s1.length, s1.sides);
Rectangle t1 = new Rectangle();
t1.calculateArea();
t1.calculatePerimeter(t1.length, t1.sides);
}
}
}
Keluaran
Area of Square: 40000 Perimeter: 800 Area of Rectangle: 20000 Perimeter: 400
Pada contoh di atas, kita telah membuat RegularPolygon class yang memiliki metode untuk menghitung keliling poligon beraturan.
Di sini, Persegi dan Persegi Panjang mewarisi dari RegularPolygon .
Rumus untuk menghitung keliling adalah umum untuk semua, jadi kami telah menggunakan kembali calculatePerimeter() metode kelas dasar.
Dan karena rumus untuk menghitung luas berbeda untuk bentuk yang berbeda, kami telah membuat metode terpisah di dalam kelas turunan untuk menghitung luas.
Bahasa C
Python Multiple Inheritance Dalam tutorial ini, Anda akan belajar tentang multiple inheritance dengan Python dan bagaimana menggunakannya dalam program Anda. Anda juga akan belajar tentang pewarisan multi-level dan urutan penyelesaian metode. Python Multiple Inheritance Kelas dapat diturunkan dari
Warisan Java Dalam tutorial ini, kita akan belajar tentang pewarisan Java dan jenisnya dengan bantuan contoh. Pewarisan adalah salah satu fitur utama OOP yang memungkinkan kita membuat kelas baru dari kelas yang sudah ada. Kelas baru yang dibuat dikenal sebagai subkelas (anak atau kelas turunan) d
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)