De ce moștenirea multiplă nu este posibilă în C#?
De ce moștenirea multiplă nu este posibilă în C#?

Video: De ce moștenirea multiplă nu este posibilă în C#?

Video: De ce moștenirea multiplă nu este posibilă în C#?
Video: Part 34 - C# Tutorial - Problems of multiple class inheritance.avi 2024, Mai
Anonim

C# face nu a sustine moștenire multiplă , pentru că au motivat această adăugare moștenire multiplă a adăugat prea multă complexitate la C#, oferind în același timp prea puține beneficii. În C#, clasele sunt doar permis la moşteni dintr-o clasă de părinte unic, care se numește singur moştenire.

Doar așa, de ce nu este permisă moștenirea multiplă?

Java suportă moștenire multiplă numai prin interfețe. O clasă poate implementa orice număr de interfețe, dar poate extinde o singură clasă. Moștenirea multiplă nu este acceptată deoarece duce la o problemă mortală a diamantelor. O interfață este un contract de lucruri pe care clasa ta trebuie să le implementeze.

De asemenea, cineva se poate întreba, putem moșteni mai multe interfețe în C#? Interfețe sunt ca acordurile sau „contractele” pe ce o clasă pot face . Clase poate sa avea interfețe multiple , dar cursurile nu pot mostenesc multiplu clase. Clase mostenind de la mai mult de unu clasa este cunoscută ca multiplu - moştenire . C# face nu permite multiplu - moştenire.

Aici, care este problema Diamond în moștenirea multiplă C#?

" problema diamantelor " este o ambiguitate care apare atunci când două clase B și C moşteni de la A și clasa D moștenește de la B și C. Dacă există o metodă în A pe care B și C au suprascris-o și D nu o înlocuiește, atunci ce clasă a metodei o face D moşteni : cel al lui B, sau cel al lui C?

Ce este moștenirea multiplă în C# cu exemplu?

C# nu permite moștenire multiplă cu clase, dar poate fi implementat folosind interfața. Motivul din spate este: Moștenire multiplă adăugați prea multă complexitate cu puține beneficii. Există șanse mari de a intra în conflict cu membrii clasei de bază. Moştenire cu interfață oferă aceeași muncă de moștenire multiplă.

Recomandat: