Perché l'ereditarietà multipla non è possibile in C#?
Perché l'ereditarietà multipla non è possibile in C#?

Video: Perché l'ereditarietà multipla non è possibile in C#?

Video: Perché l'ereditarietà multipla non è possibile in C#?
Video: Programmazione ad oggett #6 ereditarietà multipla 2024, Maggio
Anonim

C# lo fa non sostegno eredità multipla , perché hanno ragionato che aggiungendo eredità multipla ha aggiunto troppa complessità a C# fornendo allo stesso tempo un vantaggio insufficiente. In C#, le classi sono solo consentito a ereditare da una singola classe genitore, che si chiama single eredità.

Proprio così, perché l'ereditarietà multipla non è consentita?

Supporta Java eredità multipla solo tramite interfacce. Una classe può implementare un numero qualsiasi di interfacce ma può estendere solo una classe. L'ereditarietà multipla non è supportata perché porta al problema mortale del diamante. Un'interfaccia è un contratto di cose che la tua classe deve implementare.

Ci si potrebbe anche chiedere, possiamo ereditare più interfacce in C#? Interfacce sono come accordi o "contratti" su cosa una classe può fare . Classi Potere avere interfacce multiple , ma le classi non possono ereditare più classi. Classi ereditare da più di uno la classe è conosciuta come multiplo - eredità . C# lo fa Non consentire multiplo - eredità.

In questo caso, qual è il problema Diamond nell'ereditarietà multipla C#?

Il " problema con i diamanti " è un'ambiguità che sorge quando due classi B e C ereditare da A, e classe D eredita da entrambi B e C. Se c'è un metodo in A che B e C hanno sovrascritto e D non lo sovrascrive, allora quale classe del metodo esegue D ereditare : quello di B, o quello di C?

Che cos'è l'ereditarietà multipla in C# con l'esempio?

C# non permette eredità multipla con le classi ma può essere implementato utilizzando interface. Il motivo dietro è: Eredità multipla aggiungere troppa complessità con scarso beneficio. Ci sono enormi possibilità che un membro della classe base sia in conflitto. Eredità con l'interfaccia fornisce lo stesso lavoro di eredità multipla.

Consigliato: