G
Guest
Gast
Nabend alle miteinander,
bin grad mal etwas am Java ausprobieren und mir fällt grad folgendes auf, was ich nicht wirklich verstehe. Hoffe ihr könnt es mir erklären. Aber erstmal der Code:
So jetzt wollt ich einfach ein Sohn Objekt erstellen
Und jetzt gibt es bei mir einen StackOverflow Exception. Und es liegt halt an disen Casts in den überschriebenen print Methoden von Vater und Sohn. Nur lese ich halt in dem Buch hier grad, dass der Compiler einen Aufruf wie super.methode() (was übrigens in diesem beispiel dann auch klappt) intern sowieso in ((Vaterklasse) this).methode() umwandelt.
Und bei verdecken Datenfeldern klappt tdas ganze ja schließlich auch. Mache ich grad einen Denkfehler?
Vielen Dank für eure Antworten.
bin grad mal etwas am Java ausprobieren und mir fällt grad folgendes auf, was ich nicht wirklich verstehe. Hoffe ihr könnt es mir erklären. Aber erstmal der Code:
Code:
public class Grosvater {
private String vorname;
public void setVorname(String name) {...}
public String getVorname() {...}
public void print() {
System.out.println("Vorname ist :" + this.vorname);
}
}
public class Vater extends Grosvater {
private String nachname;
public void setNachname(String nachname) {...}
public String getNachname() {...}
public void print(){
((Grosvater)this).print();
System.out.println("Nachname ist: "+ this.nachname);
}
}
public class Sohn extends Vater {
private int alter;
public void setAlter(int alter) {..}
public int getAlter() {..}
public void print() {
((Vater)this).print();
System.out.println("Alter ist: " + this.alter);
}
}
Code:
Sohn s1 = new Sohn();
s1.setNachname...
s1.setVorname...
s1.setAlter...
s1.print();
Und bei verdecken Datenfeldern klappt tdas ganze ja schließlich auch. Mache ich grad einen Denkfehler?
Vielen Dank für eure Antworten.