Dalam desain
berorientasi objek, inheritance merupakan hubungan antara kelas yang lebih umum
(superclass) dan kelas yang lebih
khusus (subclass). Subclass mewarisi data dan perilaku kelas
supernya.
Contoh dalam kehidupan nyata yaitu
mobil. Mobil berbagi ciri-ciri umum dari semua kendaraan, misalnya
memiliki kemampuan untuk mengangkut orang dari satu tempat ke tempat lain.
Katakanlah mengatakan bahwa class mobil mewarisi dari class kendaraan. Dalam
hubungan ini, kelas kendaraan merupakan superclass dan kelas Mobil merupakan
subclass.
Bila kita menggunakan inheritance dalam program program yang kita buat,
kita dapat menggunakan kembali kode duplikasi itu. Penggunaan kembali ini ini
datang dalam dua bentuk. Pertama, subclass mewarisi metode dari superclass.
Sebagai contoh, jika kelas Kendaraan memiliki metode drive, maka mobil subclass
otomatis mewarisi metode. Ini tidak perlu digandakan.
Bentuk kedua dari penggunaan kembali ini lebih mudah. Anda dapat
menggunakan kembali algoritma yang memanipulasi objek Vehicle. Karena mobil
adalah jenis dari suatu kendaraan, maka kita dapat menggunakan Mobil di dalam
algoritma tersebut, hal itu akan menjadikan program berjalan dengan benar.
Karena mobil merupakan subclass dari Kendaraan, Anda dapat memanggil metode
dengan objek Car: Mobil MyCar = Mobil baru; (...) processVehicle (MyCar);
Mengapa memberikan metode yang memproses Kendaraan benda bukan benda Car?
Metode yang lebih berguna karena dapat menangani segala jenis kendaraan
(termasuk truk dan objek Motor).
Bab ini, kita akan mempertimbangkan hirarki sederhana dari kelas. Akar dari
hirarki ini merupakan jenis pertanyaan. Sebuah pertanyaan dapat menampilkan
teks, dan itu dapat memeriksa apakah respon yang diberikan adalah jawaban yang
benar.
Pada bagian berikut, Anda akan melihat bagaimana membentuk subclass dari
kelas Pertanyaan. Berikut adalah program tes sederhana untuk Question class: