Çoklu miras türü hakkındaki Oracle dokümantasyon sayfasından doğru yanıtı burada bulabiliriz . Burada önce java'daki çoklu kalıtımın türünü bilmeliyiz: -
- Devletin çoklu mirası.
- Çoklu uygulama mirası.
- Çoklu tür mirası.
Java "birden çok durum mirasını desteklemez, ancak java 8 sürümünden ve arabirimlerle çoklu tür mirasından bu yana varsayılan yöntemlerle uygulamanın çoklu kalıtımını destekler.
Sonra burada "elmas sorunu" ve Java'nın bununla nasıl başa çıktığı sorusu ortaya çıkıyor: -
Birden fazla uygulama mirası olması durumunda, java derleyicisi derleme hatası verir ve kullanıcıdan arayüz adını belirterek düzeltmesini ister. Örnek burada: -
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 {
}
Yani burada şu hatayı alacağız: - arayüz D, metod () için ilgisiz varsayılanları B tiplerinden miras alır ve C arayüzü D, B, C'yi genişletir
Bunu şu şekilde düzeltebilirsiniz: -
interface D extends B, C {
@Override
default void method() {
B.super.method();
}
}
- Çoklu miras türünde java buna izin verir çünkü arayüz değişken alanlar içermez ve sınıfa yalnızca bir uygulama ait olur, böylece java herhangi bir sorun vermez ve bunu yapmanıza izin verir.
Sonuç Olarak biz bu java söyleyebiliriz desteklemediği devletin çoklu kalıtım ama desteklemiyor uygulama ve türde birden fazla miras çoklu miras .