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

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

Wideo: Czy Java obsługuje dziedziczenie wielokrotne Dlaczego lub dlaczego nie?
Wideo: Why Java Doesn't Support Multiple Inheritance | Learn Coding 2024, Kwiecień
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: