Neden Çoklu kalıtım C++'da destekleniyor, ancak Java'da desteklenmiyor?
Neden Çoklu kalıtım C++'da destekleniyor, ancak Java'da desteklenmiyor?

Video: Neden Çoklu kalıtım C++'da destekleniyor, ancak Java'da desteklenmiyor?

Video: Neden Çoklu kalıtım C++'da destekleniyor, ancak Java'da desteklenmiyor?
Video: C++ ve Java Dillerinde Çoklu Kalıtım 2024, Mayıs
Anonim

C++ , Ortak lisp ve diğer birkaç dil çoklu kalıtımı destekler süre java yapmaz destek o. Java izin vermiyor çoklu kalıtım neden olduğu belirsizliği önlemek için. Böyle bir problemin örneklerinden biri de meydana gelen elmas problemidir. çoklu kalıtım.

Buna göre, Java'da neden Çoklu kalıtım desteklenmiyor?

Java destekler çoklu kalıtım sadece arayüzler aracılığıyla. Bir sınıf, herhangi bir sayıda arabirim uygulayabilir, ancak yalnızca bir sınıfı genişletebilir. Çoklu kalıtım NS Olumsuz ölümcül elmas sorununa yol açtığı için desteklenir. Sen arayüzden herhangi bir işlevsellik kazanmayın.

Ayrıca, çoklu kalıtımda Elmas sorunu nedir? NS elmas sorunu izin vermenin bir sonucu olarak ortaya çıkabilecek bir belirsizliktir. çoklu kalıtım . bu ciddi sorun izin veren diller için (C++ gibi) çoklu kalıtım devletin. Ancak Java'da, çoklu kalıtım sınıflar için izin verilmez, yalnızca arabirimler için izin verilir ve bunlar durum içermez.

Aynı şekilde, insanlar soruyor, neden C++ çoklu kalıtımı destekliyor da C# desteklemiyor?

Çoklu kalıtım içinde C# C# çoklu kalıtımı desteklemiyor , çünkü eklemeyi düşündüler çoklu kalıtım çok fazla karmaşıklık ekledi C# çok az fayda sağlarken. İçinde C# , sınıflara sadece izin verilir miras single olarak adlandırılan tek bir ebeveyn sınıfından miras.

C++ çoklu kalıtımı nasıl destekler?

Diğer birçok nesne yönelimli programlama dilinden farklı olarak, C++ izin verir çoklu kalıtım . Çoklu kalıtım bir çocuk sınıfına izin verir miras birden fazla ebeveyn sınıfından. Hayvan ve Sürüngen sınıfları miras ondan. Yalnızca Animal sınıfı, Breath() yöntemini geçersiz kılar.