Ar Java palaiko daugialypį paveldėjimą Kodėl ar kodėl ne?
Ar Java palaiko daugialypį paveldėjimą Kodėl ar kodėl ne?

Video: Ar Java palaiko daugialypį paveldėjimą Kodėl ar kodėl ne?

Video: Ar Java palaiko daugialypį paveldėjimą Kodėl ar kodėl ne?
Video: Java's Creators Rejected Multiple Inheritance - Here's Why 2024, Lapkritis
Anonim

Java nepalaiko kelių paveldėjimo būdų per klases, bet per sąsajas galime naudoti daugybinis paveldėjimas . Nėra java ne palaiko daugybinį paveldėjimą tiesiogiai, nes tai lemia metodų nepaisymą, kai abi išplėstinės klasės turi tą patį metodo pavadinimą.

Vadinasi, ar „Java“leidžiamas daugialypis paveldėjimas?

Palaiko C++, Common Lisp ir keletą kitų kalbų daugybinis paveldėjimas kol java jo nepalaiko. Java ne leisti daugybinį paveldėjimą kad būtų išvengta jos sukeliamos dviprasmybės. Vienas iš tokios problemos pavyzdžių yra deimantų problema, kuri atsiranda daugybinis paveldėjimas.

Taip pat žinokite, kodėl daugybinis paveldėjimas yra blogas? Pavojus su daugybinis paveldėjimas yra sudėtingumas. Kadangi galite paveikti daugkartinis modulius programoje iš tų pačių pirminių klasių, nėra taip lengva suprasti kodo pakeitimus. Bet kokia klaida gali sukelti grandininę klaidų reakciją. Štai kur daugybinis paveldėjimas gali tapti produktyviu.

Taip pat žinokite, kurio paveldėjimo nepalaiko Java Kodėl?

Java tai niekada negali įvykti, nes jo nėra daugybinis paveldėjimas . Net jei dvi sąsajos turės tą patį metodą, diegimo klasė turės tik vieną metodą ir tai taip pat atliks įgyvendintojas. Dinaminis klasių įkėlimas leidžia įgyvendinti daugybinis paveldėjimas sunku.

Kodėl sąsajoje naudojamas daugialypis paveldėjimas?

Kaip paaiškinome paveldėjimo skyrius, daugybinis paveldėjimas nėra palaikoma klasės atveju dėl dviprasmiškumo. Tačiau yra palaikoma esant an sąsaja nes nėra neaiškumų. Taip yra todėl, kad jo įgyvendinimą užtikrina įgyvendinimo klasė. sąsaja Rodomas{

Rekomenduojamas: