Bakit hindi posible ang Maramihang pamana sa C#?
Bakit hindi posible ang Maramihang pamana sa C#?

Video: Bakit hindi posible ang Maramihang pamana sa C#?

Video: Bakit hindi posible ang Maramihang pamana sa C#?
Video: Salamat Dok: Breast Cancer signs and symptoms 2024, Mayo
Anonim

Ginagawa ng C# hindi suporta maramihang mana , dahil ikinatuwiran nila na ang pagdaragdag maramihang mana nagdagdag ng masyadong kumplikado sa C# habang nagbibigay ng masyadong maliit na benepisyo. Sa C#, ang mga klase ay lamang pinapayagan sa magmana mula sa isang solong magulang na klase, na tinatawag na single mana.

Kaya lang, bakit bawal ang multiple inheritance?

Sinusuportahan ng Java maramihang mana sa pamamagitan lamang ng mga interface. Ang isang klase ay maaaring magpatupad ng anumang bilang ng mga interface ngunit maaari lamang mag-extend ng isang klase. Hindi sinusuportahan ang maramihang mana dahil ito ay humahantong sa nakamamatay na problema sa brilyante. Ang interface ay isang kontrata ng mga bagay na kailangang ipatupad ng iyong klase.

Maaari ring magtanong, maaari ba tayong magmana ng maraming interface sa C#? Mga interface ay parang mga kasunduan o "kontrata" sa kung anong klase Kayang gawin . Mga klase pwede mayroon maramihang mga interface , ngunit hindi maaari ang mga klase magmana ng marami mga klase. Mga klase pagmamana mula sa higit sa isa klase ay kilala bilang maramihan - mana . Ginagawa ng C# hindi pinapayagan maramihan - mana.

Dito, ano ang problema ng Diamond sa maramihang mana C#?

Ang " problema ng brilyante " ay isang kalabuan na lumitaw kapag ang dalawang klase B at C magmana mula sa A, at klase D namamana mula sa parehong B at C. Kung mayroong isang pamamaraan sa A na na-override ng B at C, at hindi na-override ito ng D, kung aling klase ng pamamaraan ang D magmana : yung kay B, o yung kay C?

Ano ang maramihang pamana sa C# na may halimbawa?

C# hindi pinapayagan maramihang mana may mga klase ngunit maaari itong ipatupad gamit ang interface. Ang dahilan sa likod ay: Maramihang mana magdagdag ng masyadong kumplikado na may kaunting pakinabang. Malaki ang posibilidad na magkasalungat ang batayang miyembro ng klase. Mana na may Interface ay nagbibigay ng parehong trabaho ng maramihang mana.

Inirerekumendang: