Inheritance di C++
Penjelasan
Inheritance (pewarisan) memungkinkan sebuah class (derived class) mewarisi field dan method dari class lain (base class) memakai sintaks : public NamaBaseClass — supaya kode yang sama tidak perlu ditulis ulang di tiap class turunan. Constructor base class dipanggil lewat initializer list di constructor derived class.
Contoh Konsep
#include <iostream>
#include <string>
class Hewan {
public:
std::string nama;
Hewan(std::string nama) : nama(nama) {}
std::string bersuara() {
return nama + " mengeluarkan suara.";
}
};
class Kucing : public Hewan {
public:
Kucing(std::string nama) : Hewan(nama) {} // panggil constructor Hewan
std::string bersuara() {
return nama + " berkata Meong!";
}
};
int main() {
Kucing kucingku("Milo");
std::cout << kucingku.bersuara() << std::endl; // Milo berkata Meong!
return 0;
}
Praktikum
Buat class Kendaraan dengan field std::string merek (diisi lewat constructor) dan method infoMerek() yang mengembalikan "Merek: {merek}". Buat class Motor yang public Kendaraan, constructor-nya memanggil constructor Kendaraan. Buat object Motor di main() dan tampilkan hasil infoMerek().
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Berbeda dari Java yang hanya mendukung single inheritance, C++ mendukung multiple inheritance (satu class bisa extends lebih dari satu base class sekaligus) — tapi fitur ini sebaiknya dipakai hati-hati karena bisa bikin struktur kode membingungkan.