Dlaczego dziedziczenie wielokrotne jest obsługiwane w C++, ale nie w Javie?
Dlaczego dziedziczenie wielokrotne jest obsługiwane w C++, ale nie w Javie?

Wideo: Dlaczego dziedziczenie wielokrotne jest obsługiwane w C++, ale nie w Javie?

Wideo: Dlaczego dziedziczenie wielokrotne jest obsługiwane w C++, ale nie w Javie?
Wideo: Why multiple inheritance not supported by java? #javainterview #multipleinheritance #inheritance 2024, Listopad
Anonim

C++ , Wspólne seplenienie i kilka innych języków obsługuje wielokrotne dziedziczenie podczas Jawa nie? Pomoc to. Jawa nie pozwala wielokrotne dziedziczenie aby uniknąć spowodowanej przez to dwuznaczności. Jednym z przykładów takiego problemu jest problem diamentów, który występuje w wielokrotne dziedziczenie.

W związku z tym, dlaczego dziedziczenie wielokrotne nie jest obsługiwane w Javie?

Jawa obsługuje wielokrotne dziedziczenie tylko przez interfejsy. Klasa może implementować dowolną liczbę interfejsów, ale może rozszerzać tylko jedną klasę. Dziedziczenie wielokrotne jest nie obsługiwane, ponieważ prowadzi do śmiertelnego problemu z diamentami. Ty nie uzyskują żadnej funkcjonalności z interfejsu.

Co to jest problem Diamentów w dziedziczeniu wielokrotnym? Ten problem z diamentami „to dwuznaczność, która może powstać w wyniku przyzwolenia” wielokrotne dziedziczenie . To poważna problem dla języków (takich jak C++), które pozwalają na wielokrotne dziedziczenie państwowy. Jednak w Javie wielokrotne dziedziczenie nie jest dozwolone dla klas, tylko dla interfejsów, a te nie zawierają stanu.

Podobnie ludzie pytają, dlaczego C++ obsługuje dziedziczenie wielokrotne, a C# nie?

Dziedziczenie wielokrotne w C# C# nie obsługuje wielokrotnego dziedziczenia , ponieważ uznali, że dodanie wielokrotne dziedziczenie dodał zbyt wiele złożoności do C# zapewniając jednocześnie zbyt małe korzyści. w C# , zajęcia mogą być tylko dziedziczyć z jednej klasy rodzicielskiej, która nazywa się single dziedzictwo.

Jak C++ obsługuje dziedziczenie wielokrotne?

W przeciwieństwie do wielu innych języków programowania obiektowego, C++ pozwala wielokrotne dziedziczenie . Dziedziczenie wielokrotne pozwala klasie dzieci dziedziczyć z więcej niż jednej klasy rodzicielskiej. Klasy zwierząt i gadów dziedziczyć z tego. Tylko klasa Animal przesłania metodę breathe().