Zakaj večkratno dedovanje ni možno v C#?
Zakaj večkratno dedovanje ni možno v C#?

Video: Zakaj večkratno dedovanje ni možno v C#?

Video: Zakaj večkratno dedovanje ni možno v C#?
Video: НЕ ВЫБРОСИЛА СТАРЫЙ ТЮЛЬ И ХОРОШО СЭКОНОМИЛА СЕМЕЙНЫЙ БЮДЖЕТ! 4 КРУТЫЕ ИДЕИ ИЗ ТЮЛЯ! 2024, December
Anonim

C# ima ne podporo večkratno dedovanje , ker so utemeljili to dodajanje večkratno dedovanje je C# dodal preveč zapletenosti, hkrati pa zagotovil premalo koristi. V C# so le razredi dovoljeno do podedovati iz enega nadrejenega razreda, ki se imenuje single dedovanje.

Samo zato, zakaj večkratno dedovanje ni dovoljeno?

Java podpira večkratno dedovanje samo prek vmesnikov. Razred lahko izvaja poljubno število vmesnikov, vendar lahko razširi samo en razred. Večkratno dedovanje ni podprto ker vodi do smrtonosne težave z diamanti. Vmesnik je pogodba stvari, ki jih mora izvajati vaš razred.

Lahko se tudi vprašamo, ali lahko podedujemo več vmesnikov v C#? Vmesniki so kot dogovori ali "pogodbe" o tem, kakšen razred lahko . Razredi lahko imeti več vmesnikov , razredi pa ne morejo podedovati več razredov. Razredi dedovanje od več kot eno razred je znan kot večkraten - dedovanje . C# ima ni dovoljeno večkraten - dedovanje.

Kaj je problem z diamanti pri večkratnem dedovanju C#?

" problem z diamanti "je dvoumnost, ki se pojavi, ko sta dva razreda B in C podedovati iz A in razreda D podeduje iz B in C. Če obstaja metoda v A, ki sta jo B in C preglasila in je D ne preglasi, kateri razred metode D podedovati : tisti od B ali tisti od C?

Kaj je večkratno dedovanje v C# s primerom?

C# ne dovoljuje večkratno dedovanje z razredi, vendar ga je mogoče implementirati z vmesnikom. Razlog zadaj je: Večkratno dedovanje dodajte preveč zapletenosti z malo koristi. Obstaja velika verjetnost konflikta med člani osnovnega razreda. Dedovanje z vmesnikom zagotavlja enako delo večkratno dedovanje.

Priporočena: