Dari halaman dokumentasi Oracle tentang beberapa jenis warisan, kami dapat menemukan jawaban yang akurat di sini . Di sini kita harus terlebih dahulu mengetahui jenis multiple inheritance di java: -
- Warisan berganda dari negara.
- Berbagai warisan implementasi.
- Jenis pewarisan berganda.
Java "tidak mendukung multiple inheritance of state, tetapi mendukung multiple inheritance of implementation dengan metode default sejak Java 8 rilis dan multiple inheritance of type with interfaces.
Maka di sini muncul pertanyaan untuk "masalah berlian" dan bagaimana Java menangani hal itu: -
Dalam hal multiple inheritance implementasi java compiler memberikan kesalahan kompilasi dan meminta pengguna untuk memperbaikinya dengan menentukan nama antarmuka. Contoh di sini: -
interface A {
void method();
}
interface B extends A {
@Override
default void method() {
System.out.println("B");
}
}
interface C extends A {
@Override
default void method() {
System.out.println("C");
}
}
interface D extends B, C {
}
Jadi di sini kita akan mendapatkan kesalahan sebagai: - antarmuka D mewarisi default yang tidak terkait untuk metode () dari tipe B dan C antarmuka D meluas B, C
Anda dapat memperbaikinya seperti: -
interface D extends B, C {
@Override
default void method() {
B.super.method();
}
}
- Dalam multiple inheritance dari tipe java memungkinkan karena antarmuka tidak mengandung bidang yang bisa berubah dan hanya satu implementasi akan menjadi milik kelas sehingga java tidak memberikan masalah apa pun dan memungkinkan Anda untuk melakukannya.
Dalam Kesimpulan kita dapat mengatakan bahwa java tidak mendukung multiple inheritance of state tetapi mendukung Java multiple inheritance of implementation dan multiple inheritance of type .