Hallo,
bei den Vorbereitungen für die kommende Klausur bin ich auf folgendes Problem gestoßen.
Ausgabe ist folgende:
MotorBoot
MotorBoot
Boot
MotorBoot
Weshalb wird bei dem Aufruf von b.getTyp() (Ausgabe Zeile 4) auf die Funktion der Klasse MotorBoot zugegriffen, obwohl wir vorher das Objekt einer Referenz vom Typ Boot zugewiesen haben.
Schöne Grüße
Sinal
bei den Vorbereitungen für die kommende Klausur bin ich auf folgendes Problem gestoßen.
Code:
public class Boot {
public String typ;
public Boot(){
typ = "Boot";
}
public String getTyp(){
return typ;
}
}
class MotorBoot extends Boot{
public String typ;
public MotorBoot(){
typ = "MotorBoot";
}
public String getTyp(){
return typ;
}
}
class Test{
public static void main(String[] args) {
MotorBoot motorb = new MotorBoot();
System.out.println(motorb.typ);
System.out.println(motorb.getTyp());
Boot b;
b = motorb;
System.out.println(b.typ);
System.out.println(b.getTyp());
}
}
Ausgabe ist folgende:
MotorBoot
MotorBoot
Boot
MotorBoot
Weshalb wird bei dem Aufruf von b.getTyp() (Ausgabe Zeile 4) auf die Funktion der Klasse MotorBoot zugegriffen, obwohl wir vorher das Objekt einer Referenz vom Typ Boot zugewiesen haben.
Schöne Grüße
Sinal