G
Gast
Gast
Hallo,
mir ist der Code nicht ganz klar und zwar war ich der Meinung, dass einmal doIt von der Superklasse und einmal doIt von der Main- Klasse aufgerufen wird mit dem Code
sb.doIt();
((SuperClass)sb).doIt();
aber das ist nicht so, es wird immer doit() von der Mainklasse aufgerufen.
Warum ist das so, es wird ja immer die Methode aufgerufen, von der die Referenz ist, oder täusch ich mich da???
mir ist der Code nicht ganz klar und zwar war ich der Meinung, dass einmal doIt von der Superklasse und einmal doIt von der Main- Klasse aufgerufen wird mit dem Code
sb.doIt();
((SuperClass)sb).doIt();
aber das ist nicht so, es wird immer doit() von der Mainklasse aufgerufen.
Warum ist das so, es wird ja immer die Methode aufgerufen, von der die Referenz ist, oder täusch ich mich da???
Code:
class SuperClass {
public int doIt(){
System.out.println("super doIt()");
return 1;
}
}
public class Main extends SuperClass{
@Override
public int doIt() {
System.out.println("********subclas doIt()");
return 1;
}
public static void main(String... args) {
SuperClass sb = new Main();
sb.doIt();
((SuperClass)sb).doIt();
}
}