Czy Java obsługuje dziedziczenie wielokrotne Dlaczego lub dlaczego nie?
Czy Java obsługuje dziedziczenie wielokrotne Dlaczego lub dlaczego nie?
Anonim

Java nie obsługuje wielu dziedziczeń przez klasy, ale przez interfejsy możemy używać wielokrotne dziedziczenie . Bez java nie? obsługuje dziedziczenie wielokrotne bezpośrednio, ponieważ prowadzi to do nadpisania metod, gdy obie klasy rozszerzone mają tę samą nazwę metody.

W związku z tym, czy w Javie dozwolone jest wielokrotne dziedziczenie?

Obsługa C++, Common Lisp i kilku innych języków wielokrotne dziedziczenie podczas Jawa nie obsługuje tego. Jawa nie? zezwól na 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.

Wiedz też, dlaczego wielokrotne dziedziczenie jest złe? Niebezpieczeństwo z wielokrotne dziedziczenie jest złożoność. Ponieważ możesz mieć wpływ wiele modułów w Twojej aplikacji z tych samych klas nadrzędnych, nie jest łatwo uzasadnić zmiany w kodzie. Każdy błąd może spowodować reakcję łańcuchową błędów. To jest gdzie wielokrotne dziedziczenie może stać się produktywna.

Wiedz też, które dziedziczenie nie jest obsługiwane przez Javę. Dlaczego?

W javie to nigdy nie może się zdarzyć, ponieważ nie ma wielokrotne dziedziczenie . Tutaj, nawet jeśli dwa interfejsy będą miały tę samą metodę, klasa implementująca będzie miała tylko jedną metodę i to również zostanie zrobione przez implementującego. Dynamiczne ładowanie klas sprawia, że implementacja wielokrotne dziedziczenie trudny.

Dlaczego w interfejsie jest używane dziedziczenie wielokrotne?

Jak wyjaśniliśmy w dziedzictwo rozdział, wielokrotne dziedziczenie nie jest utrzymany w przypadku klasy z powodu niejednoznaczności. Jednak jest utrzymany w przypadku berło ponieważ nie ma dwuznaczności. Dzieje się tak, ponieważ jego implementacja jest dostarczana przez klasę implementacji. berło Pokazywalny{

Zalecana: