JAVA & Objektorientiertes Programmieren

Eine Einführung in das objektorientierte Programmieren mit JAVA Diese Kartei baut auf dem Stoff des Moduls OOP an der HSLU geleitet von Roland Gisler auf.

Eine Einführung in das objektorientierte Programmieren mit JAVA Diese Kartei baut auf dem Stoff des Moduls OOP an der HSLU geleitet von Roland Gisler auf.


Set of flashcards Details

Flashcards 500
Students 19
Language Deutsch
Category Computer Science
Level University
Created / Updated 04.12.2016 / 16.08.2024
Weblink
https://card2brain.ch/box/java_objektorientiertes_programmieren
Embed
<iframe src="https://card2brain.ch/box/java_objektorientiertes_programmieren/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Eine Oberklasse erbt von ihrer Unterklasse

Eine Unterklasse erbt von ihrer Oberklasse

Eine Unterklasse erweitert (extends) die Oberklasse

Eine Oberklasse erweitert (extends) die Unterklasse

Eine Unterklasse ist eine Ableitung der Oberklasse

Eine Oberklasse ist eine Ableitung der Unterklasse

Eine Unterklasse spezialisiert die Oberklasse

Eine Oberklasse spezialisiert die Unterklasse

Eine Oberklasse vererbt ihre Eigenschaften (Attribute und Methoden) an die Unterklasse

Eine Unterklasse vererbt ihre Eigenschaften (Attribute und Methoden) an die Oberklasse

Eine Oberklasse generalisiert die Unterklasse

Eine Unterklasse generalisiert die Oberklasse

Synonyme für Oberklasse

Synonyme für Unterklasse

Es ist problemlos möglich, über mehrere Stufen zu vererben

Es ist nicht möglich über mehrere Stufen zu vererben

Die Anzahl Vererbungsstufen ist ein Mass für gutes Design

Wenn eine Klasse von einer anderen Klasse erbt, dann erbt sie __________ & ___________ der Oberklasse

alle Attribute der Oberklasse & alle Methoden (inkl. Konstruktoren)

Wenn eine Klasse eine andere Klasse spezialisiert, erbt sie dann auch dessen Konstruktoren?

Ja, sie erbt alle Attribute der (Ober-)Klasse und alle Methoden inkl. Konstruktoren

Die Unterklasse ist gleichzeitig auch vom Typ der Oberklasse.

Wie nennt man das?

Bei schlechter Vererbung stimmt die folgende Aussage:

Ein Objekt der Unterklass ist auch ein Objekt der Oberklasse (is-a) und kann somit an dessen Stelle treten.

Nein, bei guter Vererbung stimmt die Aussage.

Einfache Beispiele:

- "Ein Apfel ist ein Kernobst."
- "Ein Student ist eine Person."

Was ist das Schlüsselwort, wenn man aus einer Oberklasse vererben möchte?

extends

Wie sieht die Implementation einer Vererbung aus?

siehe Bild

Ohne explizite Angabe einer Oberklasse erbt jede Klasse implizit von welcher Klasse?

Object

Welche Klasse ist die Basisklasse jeder Klasse?

Object

In Java kann jede Klasse ______ Oberklasse haben

Weshalb ist es kein Nachteil, dass eine Klasse in Java nur eine Oberklasse haben kann?

Da Java Interfaces kennt

Was wäre ein Problem, wenn man in Java Mehrfachvererben könnte?

Die Implementation könnte problematisch werden:

Welche Methode wird verwendet wenn beide Oberklassen dieselbe Methode mit zwei verschiedenen Implementationen hat?

Attribute und Methoden von Oberklassen sind für die Unterklassen abhängig vom jeweiligen Zugriffsmodifikator sichtbar oder nicht. Für welche Modifikatoren sind sie sichtbar?

siehe Bild

Welchen Zugriffsmodifikator sollten die Attribute einer Oberklasse haben und wie stellt man diese der Unterklasse zur Verfügung?

Auch in Verebungsbeziehungen zieht man private Attribute vor, und stellt diese wenn nötig über protected-Zugriffsmethoden den Spezialisierungen zur Verfügung!

Werden die Konstruktoren der Oberklasse ebenfalls vererbt?

Ja, aber sobald man in einer Unterklasse einen eigenen Konstruktor implementiert, verdeckt dieser alle Konstruktoren sämtlicher Oberklassen der Vererbungshierarchie

Kann man Konstruktoren der Oberklasse wieder aufrufen, wenn man diese mit einem eigenen Konstruktor in der Unterklasse verdeckt hat?

Ja, Konstruktoren der Oberklasse können mit dem Schlüsselwort super(...) wieder explizit aufgerufen werden. 

super(...)-Aufruf muss als erstes Statement im Konstruktor stehen. Fehlt er, wird er implizit eingefügt (nur sofern ein Standardkonstruktor sichtbar/vorhanden ist, ansonsten Fehler)

Wie könnte die Implementation einer Basisklasse aussehen?

siehe Bild

Wie könnte die Implementation der Spezialisierung dieser Basisklasse aussehen?

siehe Bild

Wenn ein Interface von einem anderen Interace erbt, dann erbt es ______  Methoden des Oberinterfaces

Das Subinterface ist gleichzeitig auch vom Typ des Basisinterface (Polymorphie)

Bei schlechter Vererbung stimmt die folgende Aussage:

Das Subinterface ist ein Basisinterface.

Von wievielen Interfaces kann ein Interface erben (wenn überhaupt)?

Von mehreren!

Mehrere Basisinterfaces können mit Komma separiert angegeben werden.
Beispiel: public interface Subinterface extends Interf1, Interf2 {...}

Was erlaubt die Vererbung einer Klasse?

Es erlaubt, eine Klasse als Erweiterung (Spezialisierung) einer anderen Klasse zu definieren

Alle gemeinsamen Eigenschaften (Attribute und Methoden) können in einer gemeinsamen Basisklasse implementiert werden. Was bedeutet das genau?

- Die abgeleiteten Unterklassen erben die Eigenschaften der Basisklasse und können diese verwenden

- Die Unterklassen brauchen nur noch die spezifischen Eigenschaften zu implementieren (Spezialisierung)