Apa yang dimaksud dengan “Warisan Berganda”?

Warisan berganda, ketika berbicara tentang bahasa pemrograman berorientasi objek (OOP), adalah istilah yang mengacu pada kelas yang mewarisi fungsionalitas dari lebih dari satu kelas induk. Istilah ini tidak dapat dipahami sepenuhnya tanpa memahami apa itu kelas. Definisi kelas yang sangat singkat adalah sekumpulan instruksi atau kode pemrograman dalam bahasa OOP yang menggambarkan dan merupakan inti dari suatu entitas. Kelas mendefinisikan semua sifat dari suatu entitas dan berisi semua metode yang diperlukan untuk memanipulasi sifat tersebut.

Dalam pemrograman komputer berorientasi objek, pewarisan berganda mengacu pada kelas yang mewarisi fungsionalitas dari lebih dari satu kelas induk.

Bergantung pada program yang sedang dikodekan, mungkin ada kebutuhan untuk menulis banyak kelas yang memiliki kesamaan tetapi harus tetap menjadi entitas yang berbeda. Di sinilah multiple inheritance berperan. Misalnya, kemajuan teknologi yang memungkinkan pembuatan kapal selam yang bisa terbang seperti pesawat terbang atau pesawat yang bisa tenggelam seperti kapal selam akan menghasilkan produk hibrida. Hibrida itu akan memiliki beberapa sifat yang sama seperti yang dimiliki pesawat terbang dan beberapa sifat kapal selam, tetapi itu akan menjadi produk atau entitas yang unik. Warisan berganda akan dengan mudah memungkinkan hibrida untuk mewarisi fungsionalitas dari kelas pesawat dan fungsionalitas dari kelas kapal selam pada saat yang sama tanpa menyalin kode.

Cara lain untuk menjelaskan pewarisan berganda adalah dengan mengatakan bahwa itu memungkinkan lebih dari satu kelas untuk bertindak sebagai basis untuk kelas lain. Ada keuntungan menggunakan multiple inheritance daripada hanya menyalin kode dari satu atau lebih kelas ke kelas lain. Bug dalam program sering membutuhkan waktu untuk ditemukan, tetapi ketika ditemukan, mereka perlu diperbaiki sesegera mungkin. Jika kode yang mengandung bug disalin ke beberapa kelas, pemrogram harus menerapkan perbaikan yang sama untuk setiap salinan kode. Namun, ketika multiple inheritance digunakan, dia harus bekerja dengan kode hanya kelas asli dari mana semua subclass mewarisi fungsionalitas.

Tidak semua bahasa pemrograman mendukung pewarisan berganda, bahkan jika mereka mendukung orientasi objek. Beberapa versi dari beberapa bahasa mungkin diklaim mendukungnya padahal pada kenyataannya mereka mendukung pewarisan hanya dari dua kelas. Kelas dari mana kelas lain mewarisi fungsionalitas sering disebut sebagai kelas “induk” atau “kelas super”, dan kelas yang mewarisi disebut kelas “anak” atau “subkelas”. Pemrogram yang tertarik untuk bekerja dengan kelas dengan cara ini sangat disarankan untuk terlebih dahulu memperoleh pengetahuan yang kuat tentang dasar-dasar kelas sebelum mencoba memanfaatkan kekuatan pewarisan berganda, karena kesalahan atau praktik pengkodean yang buruk di kelas induk diturunkan ke kelas anak.