Per què no és possible l'herència múltiple en C#?
Per què no és possible l'herència múltiple en C#?

Vídeo: Per què no és possible l'herència múltiple en C#?

Vídeo: Per què no és possible l'herència múltiple en C#?
Vídeo: Как Долго Продержится Карандаш? 2024, Maig
Anonim

C# ho fa no suport herència múltiple , perquè van raonar això afegint herència múltiple va afegir massa complexitat a C# alhora que proporcionava massa pocs beneficis. En C#, les classes només són permès a heretar d'una classe monoparental, que s'anomena solter herència.

Així doncs, per què no es permet l'herència múltiple?

Suporta Java herència múltiple només mitjançant interfícies. Una classe pot implementar qualsevol nombre d'interfícies però només pot estendre una classe. No s'admet l'herència múltiple perquè condueix a un problema mortal del diamant. Una interfície és un contracte de coses que la vostra classe ha d'implementar.

També es pot preguntar, podem heretar diverses interfícies en C#? Interfícies són com acords o "contractes" sobre el que una classe poder fer . Classes llauna tenir múltiples interfícies , però les classes no heretar múltiples classes. Classes heretant de més de un la classe es coneix com múltiples - herència . C# ho fa no permès múltiples - herència.

Aquí, quin és el problema del diamant en C# d'herència múltiple?

El " problema del diamant " és una ambigüitat que sorgeix quan dues classes B i C heretar de A i classe D hereta tant de B com de C. Si hi ha un mètode a A que B i C han anul·lat, i D no l'invalida, aleshores quina classe del mètode fa D heretar : el de B, o el de C?

Què és l'herència múltiple en C# amb exemple?

C# no permet herència múltiple amb classes, però es pot implementar mitjançant la interfície. El motiu darrere és: Herència múltiple afegir massa complexitat amb poc benefici. Hi ha grans possibilitats de conflicte entre els membres de la classe base. Herència amb la interfície ofereix el mateix treball de herència múltiple.

Recomanat: