Warum wird Mehrfachvererbung in C++ unterstützt, aber nicht in Java?
Warum wird Mehrfachvererbung in C++ unterstützt, aber nicht in Java?

Video: Warum wird Mehrfachvererbung in C++ unterstützt, aber nicht in Java?

Video: Warum wird Mehrfachvererbung in C++ unterstützt, aber nicht in Java?
Video: Warum gibt es keine Mehrfachvererbung in Java? 2024, November
Anonim

C++ , Gewöhnliches Lispeln und einige andere Sprachen unterstützt Mehrfachvererbung während Java nicht Unterstützung es. Java erlaubt nicht Mehrfachvererbung um die dadurch verursachte Mehrdeutigkeit zu vermeiden. Ein Beispiel für ein solches Problem ist das Diamantproblem, das in auftritt Mehrfachvererbung.

Warum wird die Mehrfachvererbung in Java nicht unterstützt?

Java unterstützt Mehrfachvererbung nur über Schnittstellen. Eine Klasse kann beliebig viele Interfaces implementieren, aber nur eine Klasse erweitern. Mehrfachvererbung ist nicht unterstützt, weil es zu einem tödlichen Diamantproblem führt. Du erhalten keine Funktionalität von der Schnittstelle.

Und was ist das Diamantproblem bei Mehrfachvererbung? Die Diamantproblem ” ist eine Mehrdeutigkeit, die als Folge des Zulassens entstehen kann Mehrfachvererbung . Es ist ein ernstes Problem für Sprachen (wie C++), die zulassen Mehrfachvererbung des Staates. In Java jedoch Mehrfachvererbung ist für Klassen nicht erlaubt, nur für Interfaces, und diese enthalten keinen Zustand.

Ebenso wird gefragt, warum C++ die Mehrfachvererbung unterstützt, C# jedoch nicht?

Mehrfachvererbung in C# C# unterstützt keine Mehrfachvererbung , weil sie argumentierten, dass das Hinzufügen Mehrfachvererbung zu viel Komplexität hinzugefügt C# bei zu geringem Nutzen. In C# , die Klassen dürfen nur Erben aus einer einzigen Elternklasse, die als Single bezeichnet wird Nachlass.

Wie unterstützt C++ Mehrfachvererbung?

Im Gegensatz zu vielen anderen objektorientierten Programmiersprachen C++ erlaubt Mehrfachvererbung . Mehrfachvererbung ermöglicht einer Kinderklasse Erben aus mehr als einer Elternklasse. Die Tier- und Reptilienklassen Erben davon. Nur die Klasse Animal überschreibt die Methode Breathe().