Ako virtuálne dedičstvo rieši diamantový problém?
Ako virtuálne dedičstvo rieši diamantový problém?

Video: Ako virtuálne dedičstvo rieši diamantový problém?

Video: Ako virtuálne dedičstvo rieši diamantový problém?
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Apríl
Anonim

Virtuálne dedičstvo rieši klasický Diamantový problém “. Zabezpečuje, že detská trieda dostane iba jednu inštanciu spoločnej základnej triedy. Inými slovami, trieda Snake bude mať iba jednu inštanciu triedy LivingThing. Triedy zvierat a plazov zdieľajú tento prípad.

V čom je v tomto smere diamantový problém v dedení?

diamantový problém “je nejednoznačnosť, ktorá môže vzniknúť v dôsledku povolenia násobku dedičstvo . Je to vážne problém pre jazyky (ako C++), ktoré umožňujú viacnásobné dedičstvo štátu. Na Jave je však viacero dedičstvo nie je povolený pre triedy, iba pre rozhrania, ktoré neobsahujú stav.

Následne je otázkou, ako virtuálna základná trieda pomáha pri dedení? Virtuálne základné triedy ponúkajú spôsob, ako ušetriť miesto a vyhnúť sa nejednoznačnostiam trieda hierarchie, ktoré využívajú viacnásobnú dedičnosť. Keď základná trieda je špecifikovaný ako a virtuálna základňa , môže pôsobiť ako nepriama základňu viac ako raz bez duplikácie svojich údajových členov.

Tiež viete, čo je virtuálne verejné dedičstvo?

Virtuálne dedičstvo je technika C++, ktorá zaisťuje iba jednu kópiu členských premenných základnej triedy zdedené triedami odvodenými od vnukov. Táto funkcia je najužitočnejšia pre viacerých dedičstvo , ako to robí virtuálne založiť spoločný podobjekt pre odvodenú triedu a všetky triedy, ktoré sú z nej odvodené.

Ako rozhranie rieši diamantový problém?

Ako to robí pomocou an rozhranie v Jave vyriešiť a diamantový problém ? Ak teda dvaja rozhrania má rovnaký podpis metódy a trieda chce dediť (implementuje v jazyku Java) od týchto dvoch rozhrania , neexistuje žiadne „telo metódy“na dedenie, teda „ diamant dedičstvo problém sa vyhýba.

Odporúča: