Waarom is meervoudige overerving niet mogelijk in C#?
Waarom is meervoudige overerving niet mogelijk in C#?

Video: Waarom is meervoudige overerving niet mogelijk in C#?

Video: Waarom is meervoudige overerving niet mogelijk in C#?
Video: Why Multiple inheritance is not supported in C# | dgTraining 2024, November
Anonim

C# doet niet steun meervoudige overerving , omdat ze redeneerden dat het toevoegen van meervoudige overerving te veel complexiteit aan C# toegevoegd terwijl het te weinig voordeel bood. In C# zijn de klassen alleen toegestaan tot erven van een eenouderklasse, die single. wordt genoemd erfenis.

Net zo, waarom is meervoudige overerving niet toegestaan?

Java ondersteunt meervoudige overerving alleen via interfaces. Een klasse kan een willekeurig aantal interfaces implementeren, maar kan slechts één klasse uitbreiden. Meerdere overerving wordt niet ondersteund omdat het leidt tot een dodelijk diamantprobleem. Een interface is een contract van dingen die je klas moet implementeren.

Men kan zich ook afvragen, kunnen we meerdere interfaces in C# erven? Interfaces zijn als overeenkomsten of "contracten" over wat een klasse kan doen . Klassen kan hebben meerdere interfaces , maar klassen kunnen niet meerdere erven klassen. Klassen erven van meer dan een klasse staat bekend als meerdere - erfenis . C# doet niet toelaten meerdere - erfenis.

Wat is hierin het Diamond-probleem in C# met meerdere overervingen?

De " diamant probleem " is een dubbelzinnigheid die ontstaat wanneer twee klassen B en C erven van A, en klasse D erft van zowel B als C. Als er een methode in A is die B en C hebben overschreven, en D niet overschrijft, welke klasse van de methode doet D dan erven : die van B, of die van C?

Wat is meervoudige overerving in C# met voorbeeld?

C# staat niet toe meervoudige overerving met klassen, maar het kan worden geïmplementeerd met behulp van interface. De reden erachter is: Meerdere overerving te veel complexiteit toevoegen met weinig voordeel. Er zijn enorme kansen op een conflicterend lid van de basisklasse. Erfenis met Interface biedt dezelfde taak van meervoudige overerving.

Aanbevolen: