Hallo an Alle,
Ich versuche mir mittels eines Buches die Grundprinzipien von Java anzueignen. Nun bin ich an der Stelle der Vererbung und der dynamischen Bindung und komme gerade nicht weiter
. Der Beispielcode sieht wie folgt aus:
Hier verstehe ich die gesamten Ausdrücke nicht.
So wie ich es bis jetzt verstanden habe, erstellt die Klasse Parent ein Objekt der Kindklasse Child. Hierbei verstehe ich dann aber nicht inwiefern die Methoden der Klasse Parent und Child miteinander funktionieren sollen. Denn das ist mein zweites Problem.
Wenn man
ausgibt, dann wird die Methode getFoo() aus der Child Klasse aufgerufen. Wenn man jedoch
ausführen will, dann kommt es zu einem Kompilierfehler. Weshalb kommt er hier zustande, die Methode befindet sich doch in der Child Klasse und demnach ist es doch auch ausführbar oder nicht?
Ich bin für jede Hilfe sehr dankbar
Liebe Grüße
Ich versuche mir mittels eines Buches die Grundprinzipien von Java anzueignen. Nun bin ich an der Stelle der Vererbung und der dynamischen Bindung und komme gerade nicht weiter
Java:
class Parent {
public String getFoo() { return "parentFoo"; }
}
class Child extends Parent {
public String getFoo() { return "childFoo"; }
public String getBar() { return "childBar"; }
}
class GrandChild extends Child {
public String getFoo() { return "grandChildFoo"; }
}
Parent p0 = new Child();
p0.getFoo();
p0.getBar();
Child c0 = new GrandChild();
c0.getFoo();
c0.getBar();
GrandChild gc0 = new GrandChild();
gc0.getFoo();
gc0.getBar();
Parent p0 = new Child();
Child c0 = new GrandChild();
GrandChild gc0 = new GrandChild();
So wie ich es bis jetzt verstanden habe, erstellt die Klasse Parent ein Objekt der Kindklasse Child. Hierbei verstehe ich dann aber nicht inwiefern die Methoden der Klasse Parent und Child miteinander funktionieren sollen. Denn das ist mein zweites Problem.
Wenn man
p0.getFoo();
ausgibt, dann wird die Methode getFoo() aus der Child Klasse aufgerufen. Wenn man jedoch
p0.getBar();
ausführen will, dann kommt es zu einem Kompilierfehler. Weshalb kommt er hier zustande, die Methode befindet sich doch in der Child Klasse und demnach ist es doch auch ausführbar oder nicht?
Ich bin für jede Hilfe sehr dankbar
Liebe Grüße