Karte k; Valentin v; Geburtstag g; Feiertag f; k = new Valentin("Debby", 8); //OK g = new Valentin("Elroy", 3); //FALSCH v = new Valentin("Fiona", 3); //OK f = new Geburtstag("Greg", 35); //FALSCH
Hier ist die Abbildung einer anderen Hierarchie: In dieser Hierarchie gibt es keine abstrakten Klassen, also kann jede Klasse instanziiert werden. Wie wir bereits gesehen haben ist das Folgende OK:
superklasseReferenz = subklasseReferenz
Die Referenzvariable einer Superklasse kann die Referenz auf ein Objekt einer ihrer eigenen Subklassen (oder deren Subklassen und so weiter) enthalten. Aber, die umgekehrte Richtung
// tun Sie das nicht subklasseReferenz = superklasseReferenz
ist nicht zulässig.
Hier sind einige Variablen:
Nager nager; Ratte ratte; Maus maus;
Betrachten Sie die Tabelle und entscheiden Sie, für jeden Codeabschnitt, ob er korrekt ist oder nicht.
Codeabschnitt OK oder Nicht? Codeabschnitt OK oder Nicht? nager = new Ratte(); nager = new Feldmaus(); maus = new Ratte(); maus = new Nager(); ratte = new Nager(); ratte = new Wasserratte(); ratte = new Feldmaus(); ratte = new Maus();