Hvorfor multippel arv ikke er mulig i C#?
Hvorfor multippel arv ikke er mulig i C#?

Video: Hvorfor multippel arv ikke er mulig i C#?

Video: Hvorfor multippel arv ikke er mulig i C#?
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, November
Anonim

C# gjør det ikke Brukerstøtte multippel arv , fordi de begrunnet det å legge til multippel arv lagt for mye kompleksitet til C# samtidig som det gir for lite nytte. I C# er klassene kun tillatt til arve fra en enslig forsørger klasse, som kalles single arv.

Bare så, hvorfor multippel arv ikke er tillatt?

Java støtter multippel arv kun gjennom grensesnitt. En klasse kan implementere et hvilket som helst antall grensesnitt, men kan bare utvide én klasse. Multippel arv støttes ikke fordi det fører til dødelige diamantproblem. Et grensesnitt er en kontrakt av ting klassen din må implementere.

Man kan også spørre, kan vi arve flere grensesnitt i C#? Grensesnitt er som avtaler eller "kontrakter" om hva en klasse kan gjøre . Klasser kan ha flere grensesnitt , men klasser kan ikke arve flere klasser. Klasser arve fra mer enn en klasse er kjent som flere - arv . C# gjør det ikke la flere - arv.

Her, hva er Diamond-problemet i C# med multiple arv?

« diamantproblem er en tvetydighet som oppstår når to klasser B og C arve fra A og klasse D arver fra både B og C. Hvis det er en metode i A som B og C har overstyrt, og D ikke overstyrer den, hvilken klasse av metoden overstyrer da D arve : det til B, eller det til C?

Hva er multippel arv i C# med eksempel?

C# tillater ikke multippel arv med klasser, men det kan implementeres ved hjelp av grensesnitt. Årsaken bak er: Multippel arv legge til for mye kompleksitet med liten nytte. Det er store sjanser for konflikt i grunnklassen. Arv med grensesnitt gir samme jobb av multippel arv.

Anbefalt: