-
Notifications
You must be signed in to change notification settings - Fork 2
Modul 6 [Inheritance]
Inheritance adalah suatu fitur atau proses dimana class baru dibuat dari class yang sudah ada. Kelas baru yang dibuat disebut “derived class” atau “child class” dan class yang sudah ada disebut “base class” atau “parent class”.
Derived class diwariskan oleh base class. Artinya, derived class memperoleh properti dan karakteristik dari base class, dan bisa menambah fitur tersendiri tanpa mengubah properti dari base class.
- sub class: diwariskan dari base class
- super class: diwariskan dari sub class
Pada gambar di atas, dapat dilihat bahwa masing-masing binatang memiliki karakteristik dan properti yang sama. Duplikasi ini dapat menyebabkan data redudancy dan meningkatkan kemungkinan error.
Untuk menghindari duplikasi code, inheritance dapat digunakan dengan membuat derived class dari base class.
class <derived_class_name> : <access-specifier> <base_class_name>
{
//body
}
class Animal {
public:
void eat() {
cout << "Animal is eating" << endl;
}
void sleep() {
cout << "Animal is sleeping" << endl;
}
};
class Dog : public Animal {
public:
void bark() {
cout << "Dog is barking" << endl;
}
};
class Cat : public Animal {
public:
void meow() {
cout << "Cat is meowing" << endl;
}
};
Pada program di atas class Dog dan class Cat memperoleh properti pada base class Animal.
Terdapat beberapa jenis inheritance, diantaranya:
- Single inheritance
- Multilevel inheritance
- Multiple inheritance
- Hierarchical inheritance
- Hybrid inheritance
Suatu subclass diwarisi oleh satu base class saja.
Format
class subclass_name : access_mode base_class
{
// body of subclass
};
class A
{
... .. ...
};
class B: public A
{
... .. ...
};
Suatu base class mewarisi lebih dari 1 class.
Format
class subclass_name : access_mode base_class1, access_mode base_class2, ....
{
// body of subclass
};
class B
{
... .. ...
};
class C
{
... .. ...
};
class A: public B, public C
{
... ... ...
};
Derived class dibuat dari derived class lain.
class C
{
... .. ...
};
class B:public C
{
... .. ...
};
class A: public B
{
... ... ...
};
Lebih dari satu subclass diwariskan oleh satu base class.
class A
{
// body of the class A.
}
class B : public A
{
// body of class B.
}
class C : public A
{
// body of class C.
}
class D : public A
{
// body of class D.
}
Menggunakan campuran dari jenis-jenis inheritance yang berbeda.
Source: https://media.geeksforgeeks.org/wp-content/uploads/Hybrid-Inheritance.png
Modul 0
Modul 1
Modul 2
Modul 3
Modul 4
Modul 5
Modul 6