62,625
社区成员
发帖
与我相关
我的任务
分享class Base {
private int i = 2;
public Base() {
this.display();
}
public void display() {
System.out.println(i);
}
}
class Derived extends Base {
private int i = 22;
public Derived() {
i = 222;
System.out.println(i);
}
public void display() {
System.out.println(i);
}
}
public class Demo {
public static void main(String[] args) {
new Derived(); //打印结果为0
}
}class Derived extends Base
{
int i;
public Derived()
{
i = 22;
i = 222;
}
public void display()
{
System.out.println(i);
}
}
成员变量的初始化实质上是在放在构造器中的第二行开始,第一行默认访问父类构造,此时还没有执行i=22,因此此时i为0。 public Derived() {
i = 222;
// System.out.println(i); //把代码粘过来的时候忘记注释掉这一行了
}