Kāpēc C# nav iespējama vairākkārtēja mantošana?
Kāpēc C# nav iespējama vairākkārtēja mantošana?

Video: Kāpēc C# nav iespējama vairākkārtēja mantošana?

Video: Kāpēc C# nav iespējama vairākkārtēja mantošana?
Video: Part 34 - C# Tutorial - Problems of multiple class inheritance.avi 2024, Novembris
Anonim

C# dara nē atbalsts daudzkārtējs mantojums , jo viņi to pamatoja, piebilstot daudzkārtējs mantojums pievienoja pārāk daudz sarežģītības C#, vienlaikus sniedzot pārāk mazu labumu. C# valodā ir tikai nodarbības atļauts uz mantot no viena vecāka klases, ko sauc par vienu mantojums.

Tātad, kāpēc nav pieļaujama vairākkārtēja mantošana?

Java atbalsta daudzkārtējs mantojums tikai caur saskarnēm. Klase var ieviest neierobežotu skaitu saskarņu, bet var paplašināt tikai vienu klasi. Vairāki mantojumi netiek atbalstīti jo tas noved pie nāvējošas dimanta problēmas. Interfeiss ir līgums par lietām, kas jūsu klasei ir jāievieš.

Var arī jautāt, vai mēs varam mantot vairākas saskarnes C#? Saskarnes ir kā vienošanās vai "līgumi" par to, kāda klase var darīt . Klases var ir vairākas saskarnes , bet klases nevar mantot vairākus klases. Klases mantojot no vairāk nekā viens klase ir pazīstama kā vairākas - mantojums . C# dara nav atļauts vairākas - mantojums.

Kas ir dimanta problēma vairāku mantojuma C# gadījumā?

" dimanta problēma " ir neskaidrība, kas rodas, ja divas klases B un C mantot no A un D klases manto gan no B, gan C. Ja A ir metode, kuru B un C ir ignorējuši, bet D to ignorē, tad kura metodes klase ignorē D mantot : tas B vai C?

Kas ir daudzkārtēja mantošana C# ar piemēru?

C# neļauj daudzkārtējs mantojums ar klasēm, bet to var ieviest, izmantojot interfeisu. Iemesls tam ir: Daudzkārtējs mantojums pievienot pārāk daudz sarežģītības ar nelielu labumu. Pastāv liela iespēja, ka pamatklases loceklis konfliktēs. Mantojums ar interfeisu nodrošina to pašu darbu daudzkārtējs mantojums.

Ieteicams: