Hallo,
ich bin gerade auf eine mir nicht ganz verständliche Verhaltensweise von Java gestoßen bei der ich um Erklärung bitte.
Es gibt zwei Klassen OK und UK und eine Testmethode die Objekte erstellt und anschließend eine Methode meth2 aufruft, welche sowohl in OK als auch in UK exisitert.
Quellcode:
Wieso wird in den letzten beiden Zeilen der Testklasse 2x diesselbe Methode (meth2() von uk1) aufgerufen und nicht zunächst meth2() von uk1 und dann meth2 der Oberklasse?
ich bin gerade auf eine mir nicht ganz verständliche Verhaltensweise von Java gestoßen bei der ich um Erklärung bitte.
Es gibt zwei Klassen OK und UK und eine Testmethode die Objekte erstellt und anschließend eine Methode meth2 aufruft, welche sowohl in OK als auch in UK exisitert.
Quellcode:
Java:
public class OK{
public void meth2(){
System.out.println("meth2 von OK");
}
}
Java:
public class uk1 extends OK{
public void meth2(){
System.out.println("meth2 von UK1");
}
}
Java:
public class MinimalTest{
public static void main(String[] args){
OK o = new OK();
uk1 u1 = new uk1();
u1.meth2();
((OK)u1).meth2();
}
}
Wieso wird in den letzten beiden Zeilen der Testklasse 2x diesselbe Methode (meth2() von uk1) aufgerufen und nicht zunächst meth2() von uk1 und dann meth2 der Oberklasse?