# Abstrakte Klasse



## vapor (25. Jan 2015)

Hallo Zusammen,

bin gerade für eine Klausur am Lernen und bei dieser Multiple Choice Aufgabe ziemlich verwirrt.

Sind diese Lösungen Richtig? Bei Frage D bin ich mir ziemlich unsicher. Die konkrete Klasse müsste doch nur alle methoden implentieren ,wenn sie auch konkret (real) bleiben will oder?

A) Man Spricht von Mehrfachvererbung ,wenn eine Unterklasse von mehreren Oberklassen abgeleitet ist.

B) Eine Aggregation ist eine spezielle Form der Vererbung.

C) Eine Unterklasse erbet die Attribute und Methoden der Unterklasse.

D)Wen die Unterklasse eine abstrakte Klasse ist und die Unterklasse eine konkrete Klasse ist, muss die Unterklasse alle abstrakten methoden implementieren.

E) Polymorphismus  kann durch Binden zur Laufzeit realiesirt werden.

F) Wenn eine Oberklasse eine Methode implementiert, kann die Unterklasse keine Methoden mit gleichem Namen implementieren.

A / B / C und E?

Vielen dank


----------



## Saheeda (25. Jan 2015)

A) Nein, Java kennt keine Mehrfachvererbung. Du kannst Vererbungshierarchien aufbauen (C erbt von B, B erbt von A), aber  nicht sowas: C erbt von A und B.

B) Nein, Aggregation hat nix mit Vererbung zu tun
Aggregation (Informatik)

C) Vertippt?

D) Vertippt?

E) Keine Ahnung, finde ich zu schwammig formuliert

F) Nein, Kinder können die Methoden ihrer Eltern überschreiben.


----------



## vapor (25. Jan 2015)

Vielen dank für die schnelle Antwort. 

hatte mich vertippt so sollte es richtig heißen. 

C) Eine Unterklasse erbt die Attribute und Methoden der Oberklasse.

D)Wenn die Oberklasse eine abstrakte Klasse ist und die Unterklasse eine konkrete Klasse , muss die Unterklasse alle abstrakten methoden implementieren.

und bei Antwort A war es so gedacht das ,wenn es Mehrfachvererbung in java gäbe Unterklassen von mehreren Oberklassen abgeleitet werden.


----------



## Saheeda (25. Jan 2015)

C) Richtig.

D) Richtig. Abstrakte Methoden müssen implementiert werden, Nicht-abstrakte können. Beim Aufruf einer nicht-abstrakten Methode von einer Instanz der Kindklasse wird zunächst geschaut, ob die Kindklasse selbst dafür eine Implementierung besitzt. Wenn ja, wird diese genommen, andernfalls die der Elternklasse. Deswegen schreibt man auch immer @override dazu, um deutlich zu machen, dass in diesem Moment eine geerbte Methode überschrieben wird.


----------

