Prečo nie je možné viacnásobné dedičstvo v C#?
Prečo nie je možné viacnásobné dedičstvo v C#?

Video: Prečo nie je možné viacnásobné dedičstvo v C#?

Video: Prečo nie je možné viacnásobné dedičstvo v C#?
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Smieť
Anonim

C# áno nie podpora viacnásobné dedičstvo , pretože zdôvodnili, že pridanie viacnásobné dedičstvo pridalo príliš veľa zložitosti do C# a zároveň poskytlo príliš malý prínos. V C# sú triedy iba povolený do dediť z jednej rodičovskej triedy, ktorá sa nazýva single dedičstvo.

Prečo nie je povolené viacnásobné dedičstvo?

Java podporuje viacnásobné dedičstvo iba cez rozhrania. Trieda môže implementovať ľubovoľný počet rozhraní, ale môže rozšíriť iba jednu triedu. Viacnásobné dedičstvo nie je podporované pretože to vedie k smrteľnému problému s diamantmi. Rozhranie je zmluva o veciach, ktoré musí vaša trieda implementovať.

Niekto sa môže tiež opýtať, môžeme zdediť viacero rozhraní v C#? Rozhrania sú ako dohody alebo "zmluvy" o tom, čo trieda môcť urobiť . triedy môcť mať viaceré rozhrania , ale triedy nemôžu dediť viacnásobne triedy. triedy dedenia z viac ako jeden trieda je známa ako viacnásobné - dedičstvo . C# áno nepovoliť viacnásobné - dedičstvo.

Čo je tu diamantový problém vo viacnásobnej dedičnosti C #?

diamantový problém “je nejednoznačnosť, ktorá vzniká, keď dve triedy B a C dediť z A a triedy D dedí z B aj C. Ak existuje metóda v A, ktorú B a C prepísali a D ju neprepíše, potom ktorá trieda metódy prepíše D dediť : to B, alebo C?

Čo je viacnásobné dedičstvo v C # s príkladom?

C# nedovoľuje viacnásobné dedičstvo s triedami, ale dá sa implementovať pomocou rozhrania. Dôvodom je: Viacnásobné dedičstvo pridať príliš veľa zložitosti s malým prínosom. Existuje obrovská šanca na konfliktný člen základnej triedy. Dedičnosť s rozhraním poskytuje rovnakú prácu viacnásobné dedičstvo.

Odporúča: