Zašto višestruko nasljeđivanje nije moguće u C#?
Zašto višestruko nasljeđivanje nije moguće u C#?

Video: Zašto višestruko nasljeđivanje nije moguće u C#?

Video: Zašto višestruko nasljeđivanje nije moguće u C#?
Video: REVAN - THE COMPLETE STORY 2024, Svibanj
Anonim

C# radi ne podrška višestruko nasljeđivanje , jer su obrazložili to dodavanje višestruko nasljeđivanje dodao je previše složenosti C#u, a dao je premalo koristi. U C# su samo klase dopušteno do naslijediti iz jedne roditeljske klase, koja se naziva single nasljedstvo.

Upravo tako, zašto višestruko nasljeđivanje nije dopušteno?

Java podržava višestruko nasljeđivanje samo preko sučelja. Klasa može implementirati bilo koji broj sučelja, ali može proširiti samo jednu klasu. Višestruko nasljeđivanje nije podržano jer to dovodi do smrtonosnog problema s dijamantima. Sučelje je ugovor stvari koje vaša klasa mora implementirati.

Također se može zapitati, možemo li naslijediti više sučelja u C#? Sučelja su poput sporazuma ili "ugovora" o kakvoj klasi mogu . Nastava limenka imati više sučelja , ali klase ne mogu naslijediti višestruko razreda. Nastava nasljeđivanje od više od jedan klasa je poznata kao višestruko - nasljedstvo . C# radi ne dopustiti višestruko - nasljedstvo.

Ovdje, što je Diamond problem u višestrukom nasljeđivanju C#?

" problem dijamanta " je dvosmislenost koja nastaje kada dvije klase B i C naslijediti iz A i razreda D nasljeđuje iz B i C. Ako postoji metoda u A koju su B i C nadjačali, a D je ne nadjača, onda koja klasa metode D naslijediti : ono od B, ili ono od C?

Što je višestruko nasljeđivanje u C# s primjerom?

C# ne dopušta višestruko nasljeđivanje s klasama, ali se može implementirati pomoću sučelja. Razlog iza je: Višestruko nasljeđivanje dodati previše složenosti s malo koristi. Velike su šanse za sukob člana osnovne klase. Nasljedstvo s sučeljem pruža isti posao višestruko nasljeđivanje.

Preporučeni: