Dlaczego dziedziczenie wielokrotne nie jest możliwe w języku C#?
Dlaczego dziedziczenie wielokrotne nie jest możliwe w języku C#?

Wideo: Dlaczego dziedziczenie wielokrotne nie jest możliwe w języku C#?

Wideo: Dlaczego dziedziczenie wielokrotne nie jest możliwe w języku C#?
Wideo: Part 34 - C# Tutorial - Problems of multiple class inheritance.avi 2024, Może
Anonim

C# robi nie Pomoc wielokrotne dziedziczenie , 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# klasy są tylko dozwolony do dziedziczyć z jednej klasy rodzicielskiej, która nazywa się single dziedzictwo.

Dlaczego więc wielokrotne dziedziczenie nie jest dozwolone?

Obsługa Javy wielokrotne dziedziczenie tylko przez interfejsy. Klasa może implementować dowolną liczbę interfejsów, ale może rozszerzać tylko jedną klasę. Dziedziczenie wielokrotne nie jest obsługiwane ponieważ prowadzi to do śmiertelnego problemu z diamentami. Interfejs jest kontraktem rzeczy, które Twoja klasa musi zaimplementować.

Można też zapytać, czy możemy dziedziczyć wiele interfejsów w C#? Interfejsy są jak umowy lub „kontrakty” na to, co jest klasą może zrobić? . Klasy Móc mieć wiele interfejsów , ale klasy nie mogą odziedzicz wiele zajęcia. Klasy dziedziczenie od więcej niż jeden klasa jest znana jako wiele - dziedzictwo . C# robi nie wolno wiele - dziedzictwo.

Na czym polega problem Diamond w C# dziedziczeniu wielokrotnym?

Ten " problem z diamentami " to niejednoznaczność, która powstaje, gdy dwie klasy B i C dziedziczyć z klasy A i klasy D dziedziczy z B i C. Jeśli istnieje metoda w A, którą B i C mają nadpisane, a D jej nie nadpisuje, to która klasa metody robi D dziedziczyć : że z B, czy że z C?

Co to jest dziedziczenie wielokrotne w C# z przykładem?

C# nie pozwala wielokrotne dziedziczenie z klasami, ale można to zaimplementować za pomocą interfejsu. Powodem jest: Dziedziczenie wielokrotne dodać zbyt wiele złożoności przy niewielkich korzyściach. Istnieją ogromne szanse na konflikt członków klasy bazowej. Dziedzictwo z interfejsem zapewnia tę samą pracę wielokrotne dziedziczenie.

Zalecana: