Zakaj je večkratno dedovanje podprto v C++, ne pa v Javi?
Zakaj je večkratno dedovanje podprto v C++, ne pa v Javi?

Video: Zakaj je večkratno dedovanje podprto v C++, ne pa v Javi?

Video: Zakaj je večkratno dedovanje podprto v C++, ne pa v Javi?
Video: ВЫХОДНЫЕ 🌈 27-28 МАЯ 🌏 ЕЖЕДНЕВНЫЙ ГОРОСКОП ТАРО ПО ЗВЕЗДАМ ♈️♉️♊️♋️♌️♍️♎️♏️♐️♑️♒️♓️ 2024, Maj
Anonim

C++ , navadni lisp in nekaj drugih jezikov podpira večkratno dedovanje medtem java ne podporo to. Java ne dovoljuje večkratno dedovanje da bi se izognili nejasnostim, ki jih povzroča. Eden od primerov takšne težave je problem z diamanti, ki se pojavlja v večkratno dedovanje.

V skladu s tem, zakaj večkratno dedovanje ni podprto v Javi?

Java podpira večkratno dedovanje samo prek vmesnikov. Razred lahko izvaja poljubno število vmesnikov, vendar lahko razširi samo en razred. Večkratno dedovanje je ne podpira, ker vodi do smrtonosne težave z diamanti. ti ne pridobijo nobene funkcije od vmesnika.

Prav tako, kaj je Diamond problem pri večkratnem dedovanju? problem z diamanti ” je dvoumnost, ki lahko nastane kot posledica dopuščanja večkratno dedovanje . Gre za resno problem za jezike (kot je C++), ki omogočajo večkratno dedovanje države. Na Javi pa večkratno dedovanje ni dovoljeno za razrede, samo za vmesnike in ti ne vsebujejo stanja.

Podobno se ljudje sprašujejo, zakaj C++ podpira večkratno dedovanje, C# pa ne?

Večkratno dedovanje v C# C# ne podpira večkratnega dedovanja , ker so utemeljili to dodajanje večkratno dedovanje dodali preveč zapletenosti C# hkrati pa zagotavlja premalo koristi. V C# , razredi so dovoljeni samo podedovati iz enega nadrejenega razreda, ki se imenuje single dedovanje.

Kako C++ podpira večkratno dedovanje?

Za razliko od mnogih drugih objektno usmerjenih programskih jezikov, C++ dovoljuje večkratno dedovanje . Večkratno dedovanje omogoča otroškemu razredu podedovati iz več kot enega starševskega razreda. Razredi živali in plazilcev podedovati od tega. Samo razred Animal preglasi metodo breathe().