Video: Kāpēc vairāku mantojumu atbalsta C++, bet ne Java?
2024 Autors: Lynn Donovan | [email protected]. Pēdējoreiz modificēts: 2023-12-15 23:50
C++ , Common lisp un dažas citas valodas atbalsta vairāku mantojumu kamēr java nav atbalsts to. Java neļauj daudzkārtējs mantojums lai izvairītos no tā radītās neskaidrības. Viens no šādas problēmas piemēriem ir dimanta problēma, kas rodas daudzkārtējs mantojums.
Tātad, kāpēc Java netiek atbalstīta daudzkārtēja mantošana?
Java atbalsta daudzkārtējs mantojums tikai caur saskarnēm. Klase var ieviest neierobežotu skaitu saskarņu, bet var paplašināt tikai vienu klasi. Daudzkārtējs mantojums ir nē atbalstīts, jo tas noved pie nāvējošas dimanta problēmas. Tu nesaņem nekādu funkcionalitāti no saskarnes.
Kā arī, kāda ir dimanta problēma vairāku mantojumu gadījumā? dimanta problēma ” ir neskaidrība, kas var rasties atļaušanas rezultātā daudzkārtējs mantojums . Tas ir nopietns problēma valodām (piemēram, C++), kas pieļauj daudzkārtējs mantojums valsts. Tomēr Java valodā daudzkārtējs mantojums nav atļauts klasēm, tikai saskarnēm, un tās nesatur statusu.
Tāpat cilvēki jautā, kāpēc C++ atbalsta vairāku mantojumu, bet C# neatbalsta?
Daudzkārtējs mantojums iekšā C# C# neatbalsta vairākkārtēju mantojumu , jo viņi to pamatoja, piebilstot daudzkārtējs mantojums pievienoja pārāk daudz sarežģītības C# vienlaikus sniedzot pārāk mazu labumu. In C# , nodarbības ir atļautas tikai mantot no viena vecāka klases, ko sauc par vienu mantojums.
Kā C++ atbalsta vairāku mantojumu?
Atšķirībā no daudzām citām objektorientētām programmēšanas valodām, C++ ļauj daudzkārtējs mantojums . Daudzkārtējs mantojums ļauj bērnu klasei mantot no vairāk nekā vienas vecāku klases. Dzīvnieku un rāpuļu nodarbības mantot no tā. Tikai Animal klase ignorē metodi breathe().