黑马程序员技术交流社区
标题:
关于继承关系中静态代码块构,造代码块,构造方法房执行顺
[打印本页]
作者:
q19871127
时间:
2015-6-12 18:10
标题:
关于继承关系中静态代码块构,造代码块,构造方法房执行顺
本帖最后由 q19871127 于 2015-6-12 18:17 编辑
class Fu {
static {
System.out.println("静态代码块Fu");
}
{
System.out.println("构造代码块Fu");
}
public Fu() {
System.out.println("构造方法Fu");
}
}
class Zi extends Fu {
static {
System.out.println("静态代码块Zi");
}
{
System.out.println("构造代码块Zi");
}
public Zi() {
System.out.println("构造方法Zi");
}
}
class Demo
{
public static void main(String[] args){
new Zi();
}
}
复制代码
执行结果为:
静态代码块Fu
静态代码块Zi
构造代码块Fu
构造方法Fu
构造代码块Zi
构造方法Zi
总结:
执行顺序 1.静态代码块 (由于静态随着类的加载而执行 所以最先执行)
2. 构造代码块 -- 构造方法
只要有子父关系,肯定先初始化父亲的数据,然后初始化子类的数据。
作者:
java8023
时间:
2015-6-12 20:02
那么成员变量呢,实在构造代码块之前还是之后呢
作者:
SHISY
时间:
2015-6-12 20:40
很好哦,:)
作者:
q19871127
时间:
2015-6-12 20:56
java8023 发表于 2015-6-12 20:02
那么成员变量呢,实在构造代码块之前还是之后呢
成员变量在构造代码块之前 依然是先父类在子类的原则
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2