Hvorfor multippel arv støttes i C++, men ikke i Java?
Hvorfor multippel arv støttes i C++, men ikke i Java?

Video: Hvorfor multippel arv støttes i C++, men ikke i Java?

Video: Hvorfor multippel arv støttes i C++, men ikke i Java?
Video: Why multiple inheritance not supported by java? #javainterview #multipleinheritance #inheritance 2024, November
Anonim

C++ , Vanlig lisp og få andre språk støtter multippel arv samtidig som java gjør det ikke Brukerstøtte den. Java tillater ikke multippel arv for å unngå tvetydigheten forårsaket av det. Et av eksemplene på et slikt problem er diamantproblemet som oppstår i multippel arv.

Derfor, hvorfor multippel arv ikke støttes i Java?

Java støtter multippel arv kun gjennom grensesnitt. En klasse kan implementere et hvilket som helst antall grensesnitt, men kan bare utvide én klasse. Multippel arv er ikke støttes fordi det fører til dødelige diamantproblem. Du ikke få noen funksjonalitet fra grensesnittet.

Dessuten, hva er diamantproblemet i multippel arv? « diamantproblem ” er en tvetydighet som kan oppstå som en konsekvens av å tillate multippel arv . Det er en alvorlig problem for språk (som C++) som tillater multippel arv av staten. I Java derimot, multippel arv er ikke tillatt for klasser, kun for grensesnitt, og disse inneholder ikke tilstand.

På samme måte spør folk hvorfor C++ støtter multippel arv, men C# ikke?

Multippel arv i C# C# støtter ikke multippel arv , fordi de begrunnet det å legge til multippel arv lagt for mye kompleksitet til C# samtidig som det gir for lite nytte. I C# , klassene har kun lov til arve fra en enslig forsørger klasse, som kalles single arv.

Hvordan støtter C++ multippel arv?

I motsetning til mange andre objektorienterte programmeringsspråk, C++ muliggjør multippel arv . Multippel arv lar en barneklasse arve fra mer enn én foreldreklasse. Dyre- og reptilklassene arve fra det. Bare Animal-klassen overstyrer metoden breathe().