我有这个程序的输出,我不明白它是怎么发生的,这里是输出
我从A是40
我从A是60
我来自B是60
我确实了解输出的第一行,但此后一无所获。这和多态性有关吗?
public class Test {
public static void main(String[] args) {
new A();
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;
}
}
是的。B扩展了A,这意味着它是A的子类。因此,它共享i,该i仅在A中初始化,然后在B中共享。那么B从什么开始?“初始”值等于20的i。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句