public class Test {
public static void main(String[] args) {
System.out.println(new Child());
}
}
class Parent{
private A a = new A();
static {
System.out.println("父类静态代码块");
}
public Parent(){
System.out.println("父类构造方法");
}
}
class Child extends Parent{
private B b = new B();
static {
System.out.println("子类静态代码块");
}
public Child(){
System.out.println("子类构造方法");
}
}
class A{
public A(){
System.out.println("构造A--父类中的成员变量");
}
}
class B{
public B(){
System.out.println("构造B--子类中的成员变量");
}
}
执行结果:
父类静态代码块
子类静态代码块
构造A--父类中的成员变量
父类构造方法
构造B--子类中的成员变量
子类构造方法
com.zxm.base.Child@6d6f6e28
本文通过一个具体的Java代码示例,深入探讨了Java中父类与子类的构造函数调用顺序,以及静态代码块和成员变量初始化的过程。代码展示了父类和子类的静态代码块、构造函数及成员变量的初始化顺序。

被折叠的 条评论
为什么被折叠?



