Das war eine Frage, die ich in einer Website gefunden habe. Der Code geht so.Was ist der mögliche Grund für diese Ausgabe?
public class Test {
public static void main(String[] args) {
new B();
}
}
class A {
int i = 7;
public A() {
setI(20);
System.out.println("i from A is " + i);
}
public void setI(int i) {
this.i = 2 * i;
}
}
class B extends A {
public B() {
// System.out.println("i from B is " + i);
}
public void setI(int i) {
this.i = 3 * i;
}
}
Ich mag würde wissen, warum der Ausgang dieses i von A 60 und nicht 40. Vielen Dank im Voraus =)
Warum sollten Sie erwarten, dass es 40 ist? Es ist schwer, deinen Gedankengang zu korrigieren, wenn du es nicht ausdrückst. –
Wenn Sie erwarten, dass es 40 ist, dann ignorieren Sie die Idee des Polymorphismus vollständig. :) –