Wideo: Dlaczego dziedziczenie wielokrotne jest obsługiwane w C++, ale nie w Javie?
2024 Autor: Lynn Donovan | [email protected]. Ostatnio zmodyfikowany: 2023-12-15 23:51
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().