Pewarisan(Inheritance)
Dalam Bahasa C ++, memungkinkan untuk mewarisi atribut dan metode dari
satu kelas ke kelas lainnya. kita mengelompokkan
"konsep pewarisan" menjadi dua kategori:
- kelas turunan (anak) - kelas yang
mewarisi dari kelas lain
- kelas dasar (orang tua) - kelas
yang diwarisi dari
Untuk mewarisi dari kelas, gunakan simbol titik
dua “:”
Dalam contoh di bawah ini, kelas Mobil (anak) mewarisi atribut dan
metode dari kelas Kendaraan (orang tua):
#include <iostream> #include <string> using namespace std; // Base class class Vehicle { public: string brand =
"Ford"; void honk() { cout <<
"Tuut, tuut! \n" ; } }; // Derived class class Car: public Vehicle { public: string model =
"Mustang"; }; int main() { Car myCar; myCar.honk(); cout <<
myCar.brand + " " + myCar.model; return 0; } |
Pewarisan Bertingkat (Multilevel Inheritance)
Sebuah kelas juga dapat berasal dari satu kelas, yang sudah berasal dari
kelas lain. Dalam contoh berikut, MyGrandChild Berasal dari class MyChild (Yang berasal dari MyClass).
#include <iostream> using namespace std; // Parent class class MyClass { public: void myFunction() { cout << "Beberapa konten di kelas orang tua."
; } }; // Kelas anak class MyChild: public MyClass { }; // Kelas cucu class MyGrandChild: public
MyChild { }; int main() { MyGrandChild myObj; myObj.myFunction(); return 0; } |
Multiple Inheritance
Sebuah kelas juga dapat berasal dari lebih dari satu kelas dasar,
menggunakan daftar yang dipisahkan koma”,”:
#include <iostream> using namespace std; // Base class class MyClass { public: void myFunction() { cout << "Beberapa konten di kelas orang tua.\n"
; } }; // Kelas dasar lainnya class MyOtherClass { public: void myOtherFunction() { cout << "Some content in
another class.\n" ; } }; // Kelas turunan class MyChildClass: public
MyClass, public MyOtherClass { }; int main() { MyChildClass myObj; myObj.myFunction(); myObj.myOtherFunction(); return 0; } |
Inheritance Access
Penentu Akses
Dari contoh sebelumnya, bahwa ada tiga penentu yang tersedia di Bahasa C ++. Sampai saat ini, kita hanya menggunakan publik (anggota kelas dapat diakses dari luar kelas)
dan private (anggota hanya dapat diakses di dalam
kelas). Penentu ketiga, protect, mirip
dengan pribadi, tetapi juga dapat diakses di kelas pewarisan:
#include <iostream> using namespace std; // Kelas dasar class Employee { protected:
// Protected access specifier int salary; }; // Kelas turunan class Programmer: public
Employee { public: int bonus; void setSalary(int s) { salary = s; } int getSalary() { return salary; } }; int main() { Programmer myObj; myObj.setSalary(50000); myObj.bonus = 15000; cout << "Salary: " <<
myObj.getSalary() << "\n"; cout << "Bonus: " <<
myObj.bonus << "\n"; return 0; } |
0 Response to "Pewarisan(Inheritance)"
Posting Komentar