父类B代码如下:
public class B {
public B(){
System.out.println("父类B的构造函数");
}
static {
System.out.println("父类B的中的静态代码块");
}
{
System.out.println("父类B的中的非静态代码块 sya()");
}
}
子类A代码如下:
public class A extends B{
public A(){
System.out.println("子类A的构造函数");
}
static {
System.out.println("子类A的中的静态代码块");
}
{
System.out.println("子类A的中的非静态代码块 sya()1");
}
public static void main(String[] args) {
A a = new A();
System.out.println("A!");
A a2 = new A();
System.out.println("启动完成");
}
}
执行顺序如下:
父类B的中的静态代码块
子类A的中的静态代码块
父类B的中的非静态代码块 sya()
父类B的构造函数
子类A的中的非静态代码块 sya()1
子类A的构造函数
A!
父类B的中的非静态代码块 sya()
父类B的构造函数
子类A的中的非静态代码块 sya()1
子类A的构造函数
启动完成
网友评论