您的位置:首页 > 其它

成员变量、构造器的运行顺序

2016-07-18 23:28 211 查看
package com.athong.day_0718;

public class Test {
public static void main(String[] args) {
new B(30);
}

}

abstract class A{
public A(){
this.fun();
}
public abstract void fun();

}

class B extends A{
private int hh = 100;
public B(int hh){
this.hh = hh;
}
public void fun(){
System.out.println("值:"+ hh);
}
}

运行结果:值:0

分析:这个是成员变量,先执行类A的构造器,再初始化成员变量,而在执行类A构造器时,调用fun()方法,实际调用类B中的fun()方法,而此时,hh还没有被初始化,默认初始化为0 ,所以输出结果为0。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息