Dalam pemrograman berorientasi objek, inheritance/pewarisan mengacu pada kemampuan suatu objek untuk mengambil satu atau lebih karakteristik dari kelas objek lainnya.
Karakteristik yang diwarisi biasanya berupa variabel instan atau fungsi anggota. Sebuah objek yang mewarisi karakteristik ini dikenal sebagai subclass
Objek yang mewarisinya dikenal sebagai superclass . Rincian bagaimana pewarisan diterapkan bervariasi antar bahasa, tetapi bahasa pertama yang menerapkannya adalah Simula pada tahun 1967 .
Untuk apa inheritance digunakan?
Tujuan inheritance adalah untuk mengkonsolidasikan dan menggunakan kembali kode. Misalnya, jika objek "mobil", "truk", dan "sepeda motor" adalah subkelas kendaraan, kode yang berlaku untuk semuanya dapat digabungkan menjadi superkelas kendaraan.
Subkelas mewarisi kode ini dan setiap perubahan di masa mendatang yang dibuat untuknya, secara otomatis.
Lima jenis inheritance
- Single inheritance - Subclass mewarisi karakteristik dari superclass tunggal.
- Multiple inheritance - Sebuah subclass mungkin memiliki lebih dari satu superclass dan mewarisi karakteristik dari semuanya.
- Multilevel inheritance - Sebuah subkelas mungkin memiliki subkelasnya sendiri. Dengan kata lain, subclass dari superclass itu sendiri dapat menjadi superclass untuk subclass lainnya.
- Hierarchical inheritance- Kelas dasar bertindak sebagai superkelas induk ke beberapa tingkat subkelas.
- Hybrid inheritance - Kombinasi dari satu atau lebih jenis warisan lainnya.