Kaip virtualus paveldėjimas išsprendžia deimantų problemą?
Kaip virtualus paveldėjimas išsprendžia deimantų problemą?

Video: Kaip virtualus paveldėjimas išsprendžia deimantų problemą?

Video: Kaip virtualus paveldėjimas išsprendžia deimantų problemą?
Video: High Density 2022 2024, Balandis
Anonim

Virtualus paveldėjimas išsprendžia klasika Deimantų problema “. Tai užtikrina, kad vaikų klasė gaus tik vieną bendros bazinės klasės egzempliorių. Kitaip tariant, gyvatės klasė valios turi tik vieną LivingThing klasės egzempliorių. Gyvūnų ir roplių klasės dalijasi šiuo pavyzdžiu.

Šiuo atžvilgiu, kokia yra deimantų problema paveldėjimo srityje?

„ deimantų problema “yra dviprasmybė, kuri gali atsirasti dėl kelių leidimo paveldėjimo . Tai rimta problema kalboms (pvz., C++), kurios leidžia naudoti kelias kalbas paveldėjimo valstybės. Tačiau „Java“yra daug paveldėjimo neleidžiama klasėms, tik sąsajoms, ir jose nėra būsenos.

Vėliau kyla klausimas, kaip virtuali bazinė klasė padeda paveldėti? Virtualios bazinės klasės pasiūlyti būdą sutaupyti vietos ir išvengti dviprasmybių klasė hierarchijos, kurios naudoja kelis paveldėjimus. Kada bazinė klasė nurodytas kaip a virtualioji bazė , jis gali veikti kaip netiesioginis bazė daugiau nei vieną kartą nedubliuojant savo duomenų narių.

Taip pat žinote, kas yra virtualus viešasis paveldėjimas?

Virtualus paveldėjimas yra C++ technika, užtikrinanti, kad yra tik viena pagrindinės klasės narių kintamųjų kopija paveldėtas pagal anūkų kilmės klases. Ši funkcija labiausiai naudinga keliems paveldėjimo , nes tai daro virtualus pagrįsti bendrą poobjektą išvestinei klasei ir visoms iš jos išvestoms klasėms.

Kaip sąsaja išsprendžia deimantų problemą?

Kaip naudojant an sąsaja Java kalboje išspręsti į deimantų problema ? Vadinasi, jei du sąsajos turi tą patį metodo parašą ir klasė nori paveldėti (įdiegta Java) iš šių dviejų sąsajos , nėra „metodo kūno“, kurį būtų galima paveldėti, todėl deimantas paveldėjimas sutrikimas vengiama.

Rekomenduojamas: