Miksi moniperintöä tuetaan C++:ssa mutta ei Javassa?
Miksi moniperintöä tuetaan C++:ssa mutta ei Javassa?

Video: Miksi moniperintöä tuetaan C++:ssa mutta ei Javassa?

Video: Miksi moniperintöä tuetaan C++:ssa mutta ei Javassa?
Video: Finngredients – maailmankansalaisuutta vai mummon perintöä? 2024, Saattaa
Anonim

C++ , yhteinen lisp ja muutamat muut kielet tukee moniperintöä sillä aikaa java ei tuki se. Java ei salli moninkertainen perintö välttääkseen sen aiheuttaman epäselvyyden. Yksi esimerkki tällaisesta ongelmasta on timanttiongelma, joka esiintyy moninkertainen perintö.

Näin ollen, miksi moniperintöä ei tueta Javassa?

Java tukee moninkertainen perintö vain rajapintojen kautta. Luokka voi toteuttaa minkä tahansa määrän rajapintoja, mutta se voi laajentaa vain yhtä luokkaa. Moniperintö On ei tuetaan, koska se johtaa tappavaan timanttiongelmaan. Sinä eivät saa käyttöliittymästä mitään toimintoja.

Lisäksi mikä on Diamond-ongelma moniperinnössä? timantti ongelma ” on moniselitteisyys, joka voi syntyä sallimisen seurauksena moninkertainen perintö . Se on vakava ongelma kielille (kuten C++), jotka sallivat moninkertainen perintö osavaltiosta. Javalla kuitenkin moninkertainen perintö ei ole sallittu luokille, vain rajapinnoille, eivätkä ne sisällä tilaa.

Samoin ihmiset kysyvät, miksi C++ tukee moniperintöä, mutta C# ei?

Moniperintö sisään C# C# ei tue moniperintöä , koska he perustelivat sen lisäämällä moninkertainen perintö lisäsi liikaa monimutkaisuutta C# samalla kun se tarjoaa liian vähän hyötyä. Sisään C# , luokat ovat sallittuja vain periä yksinhuoltajaluokasta, jota kutsutaan yksinhuoltajaksi perinnöstä.

Kuinka C++ tukee moniperintöä?

Toisin kuin monet muut olio-ohjelmointikielet, C++ sallii moninkertainen perintö . Moniperintö mahdollistaa lapsiluokan periä useammasta kuin yhdestä vanhempien luokasta. Eläimet ja Matelijat luokat periä siitä. Vain Animal-luokka ohittaa metodin breathe().