übersetzt 07.03.04; überarbeitet 24.02.05; © Copyright 2003 - 2005 Deutsche Übersetzung Heinrich Gailer

Ein weiteres Quiz über Polymorphie

Das ist ein Übungsquiz. Die Ergebnisse werden nirgendwo erfasst und haben keine Auswirkung auf Ihre Note. Die Fragen in diesem Quiz dürfen in keinem Quiz oder Test erscheinen, der für Ihre Benotung zählt.

Hinweise: Wählen Sie für jede Frage die beste Antwort und klicken Sie auf das entsprechende Optionskästchen. Sie können Ihre Antwort jederzeit ändern. Wenn das Quiz bewertet wird, erscheint die richtige Antwort in der Textbox nach jeder Frage.



1. Was ist die Signatur einer Methode?

a.    Die Signatur einer Methode ist der Name einer Methode und der Typ ihres Rückgabewerts.
b.    Die Signatur einer Methode ist der Name der Methode und die Namen ihrer Parameter.
c.    Die Signatur einer Methode ist der Name der Methode und die Datentypen ihrer Parameter.
d.    Die Signatur einer Methode ist der Name der Methode, ihre Parameterliste und ihr Rückgabetyp.

Die korrekte Antwort ist:


2. Hier ist eine Methodendefinition:

int berechne( int a, double y ){ . . . .}

Welche der folgenden Definition hat eine andere Signatur?

a.    int berechne( int summe, double wert){ . . . .}
b.    double berechne( int a, double y ){ . . . .}
c.    double berechne( int summe , double y ){ . . . .}
d.    int berechne( int a, int y ){ . . . .}

Die korrekte Antwort ist:


3. Was muss eine nicht-abstrakte Subklasse mit einer abstrakten Methode ihrer Superklasse tun?

a.    Eine Subklasse muss eine geerbte abstrakte Methode überschreiben, in dem sie eine Methode mit der gleichen Signatur und dem gleichen Rückgabewert definiert:
b.    Eine Subklasse muss eine zusätzliche Methode definieren, die der geerbten Methode ähnelt (gleiche Signatur, aber anderer Rückgabetyp.)
c.    Eine Subklasse darf keine Methode mit der gleichen Signatur definieren, wie sie bereits eine abstrakte Methode der Superklasse besitzt.
d.    Eine nicht-abstrakte Subklasse muss eine abstrakte Methode mit der gleichen Signatur und dem gleichen Rückgabetyp, wie die abstrakte Methode der Superklasse, definieren.

Die korrekte Antwort ist:


4. Hier ist eine in der Superklasse definierte abstrakte Methode:

public abstract int summiereAuf ( int[] arr );

Welche der folgenden Methoden ist in einer nicht-abstrakten Subklasse erforderlich?

a.    public abstract int summiereAuf ( int[] arr ) { . . . }
b.    public int summiereAuf ( int[] arr ) { . . . }
c.    public double summiereAuf ( int[] arr ) { . . . }
d.    public int summiereAuf ( long[] arr ) { . . . }

Die korrekte Antwort ist:


5. Was muss wahr sein, wenn eine Subklasse einer abstrakten Superklasse die abstrakten Methoden der Superklasse nicht überschreibt?

a.    Das ist immer ein Fehler.
b.    Die Subklasse muss selbst als abstrakt deklariert werden.
c.    Subklassen sind automatisch nicht-abstrakt, also ist das OK.
d.    Die Superklasse ist ein Fehler.

Die korrekte Antwort ist:


6. Gegeben ist die folgende Situation:

Geburtstag happy;
happy = new ErwachsenenGeburtstag( "Joe", 39);

happy.gruss();

Welche gruss() Methode wird ausgeführt: die, die in Geburtstag definiert ist oder die, die in ErwachsenenGeburtstag definiert ist?

a.    Die, die in Geburtstag definiert ist, da das der Typ der Variablen happy ist.
b.    Die, die in ErwachsenenGeburtstag definiert ist, da das der Typ des von happy referenzierten Objekts ist.
c.    Diejenige, die im Quellcode der Anweisung happy.gruss() am nächsten steht.
d.    Weder noch — die Zuweisungsanweisung ist ein Fehler.

Die korrekte Antwort ist:


7. Angenommen die Klasse Nager hat eine Subklasse Ratte und eine weitere Subklasse Maus. Die Klasse Maus hat eine Subklasse TaschenMaus. Prüfen Sie das folgende:

Nager nager;
Ratte ratte = new Ratte();
Maus maus = new Maus();
TaschenMaus taschenmaus = new TaschenMaus();

Welche der folgenden Zuweisungen wird einen Compilerfehler verursachen?

a.    nager = ratte;
b.    nager = maus;
c.    taschenmaus = null;
d.    taschenmaus = ratte;

Die korrekte Antwort ist:


8. Angenommen die Situation ist die gleiche wie in Frage 7. Welche der folgenden Arraydeklarationen ist für ein Array korrekt, das 10 Objekte der Typen Ratte, Maus und TaschenMaus aufnehmen soll?

a.    Ratte[]  array = new Ratte[10];
b.    Nager[] array = new Ratte[10];
c.    Nager[] array = new Nager[10];
d.    Nager[10] array;

Die korrekte Antwort ist:


9. Welches ist der Name der Klasse, die der Vorfahre jeder Klasse in Java ist?

a.    Object
b.    Class
c.    Root
d.    Java

Die korrekte Antwort ist:


10. Prüfen Sie den folgenden Code:

String str = "Hot Java";

boolean flag = str instanceof String;

Welcher Wert wird an flag übergeben?

a.    true
b.    false
c.    "Hot Java"
d.    null

Die korrekte Antwort ist:


Richtige Antworten:       in Prozent:       Bewertung:   

Inhaltsverzeichnis —— Zurück zum Inhaltsverzeichnis.