面试宝典

【面试题】Java中子类和父类静态代码块、非静态代码块、构造函数的执行顺序总结一览表

在面试的时候,有时候我们会被问到这样的问题:子类A继承父类B,Aa=newA();则父类B的构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块执行的先后顺序是什么?我们先根据上面的题目,可以写出如下代码:父类B代码如下:public class B { public&nbs

在面试的时候,有时候我们会被问到这样的问题:子类A继承父类B,A a = new A();则父类B的构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块执行的先后顺序是什么?

60385df33e1170e6848cd451dd6e8bc5.png

我们先根据上面的题目,可以写出如下代码:

父类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(St

原创不易,完成人机校验,阅读全文

相关推荐