übersetzt 07.03.04; überarbeitet 24.02.05, 01.02.11, 14.12.20, 02.08.21, 18.07.22; Deutsche Übersetzung Heinrich Gailer

Ein weiteres Quiz über Polymorphie

Das ist ein Übungsquiz. Das Ergebnis wird nicht gespeichert.

Hinweise: Entscheidet Euch bei jeder Frage für die beste Antwort. Klickt dann auf das entsprechende Optionskästchen, um diese Antwort auszuwählen. Ihr könnt Eure Antwort jederzeit ändern. Sobald das Quiz bewertet wird, erscheint der Buchstabe der richtigen Antwort in der Textbox unterhalb der 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 and 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.


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 ){ . . . .}


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ückgabetyp definiert:
b.    Eine Subklasse muss eine zusätzliche Methode definieren, die der geerbten Methode gleicht, in dem sie eine Methode mit der gleichen Signatur, aber einem anderen Rückgabetyp definiert.)
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 darf keine abstrakte Methode mit der gleichen Signatur und dem gleichen Rückgabetyp, wie die abstrakte Methode der Superklasse, definieren.


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 ) { . . . }


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.


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.


7. Angenommen die Klasse Nager hat eine Subklasse Ratte und eine weitere Subklasse Maus. Die Klasse Maus hat eine Subklasse TaschenMaus. Wir prüfen 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;


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;


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

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


10. Wir prüfen 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


Richtige Antworten:       in Prozent:       Bewertung:   


Inhalt Solltet Ihr gerade von einer anderen Seite hierher zurückgekommen sein oder diese Seite neu geladen haben kann es sein, dass Ihr erneut auf alle Antworten klicken müsst, damit das Bewertungsprogramm korrekt arbeitet.

Um die alten Antworten zu löschen, haltet die Strg-Taste gedrückt und ladet dann die Seite neu (Firefox). Bei anderen Browsern funktioniert das in Verbindung mit der Umschalt- bzw. Strg+Umschalt-Taste. Beim Internet Explorer 8 muss die Seite verlassen und erneut aufgerufen werden.