黑马程序员技术交流社区
标题:
构造代码块和静态代码块被继承的时候它们在内存中的加载
[打印本页]
作者:
薛波
时间:
2012-3-8 10:17
标题:
构造代码块和静态代码块被继承的时候它们在内存中的加载
class A
{
static {System.out.println("1");}
{System.out.println("2");}
}
class B extends A
{
static{System.out.println("3");}
{System.out.println("4");}
public static void main(String[] args){
B b = new B();
}
}
作者:
王杰
时间:
2012-3-8 10:26
你想问什么呀。是问他们的执行顺序吗?
他们的执行顺序是:父类静态代码块>>子类静态代码块>>父类构造代码块>>父类构造函数>> 子类构造代码块>>子类构造函数。
以上代码运行结果:
1
3
2
4
作者:
吴璞玉
时间:
2012-3-8 10:47
楼上正解,静态代码块是随着类加载入内存的,所以最先被执行,而后创建子类对象时要先运行父类的构造代码块以及构造函数,之后才轮到子类的构造代码块和构造函数,而且构造代码块优先于构造函数。
作者:
djx900
时间:
2012-3-8 11:11
子类第一行省略 super 对父类引用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2