美文网首页
当涉及到继承时,执行顺序

当涉及到继承时,执行顺序

作者: calm_peng | 来源:发表于2019-07-11 19:37 被阅读0次
    public class HelloB extends HelloA 
    {
     public HelloB()
     {
     }
     {
         System.out.println("I’m B class");
     }
     static
     {
         System.out.println("static B");
     }
     public static void main(String[] args)
     {
         new HelloB();
     }
    }
    class HelloA
    {
     public HelloA()
     {
     }
     {
         System.out.println("I’m A class");
     }
     static
     {
         System.out.println("static A");
     }
    }
    
    image.png

    1、执行父类的静态代码块

    static {
            System.out.println("static A");
        }
    输出:static A
    

    2、执行子类的静态代码块

    static {
            System.out.println("static B");
        }
    输出:static B
    

    3、执行父类的构造代码块

    {
            System.out.println("I’m A class");
        }
    输出:I'm A class
    

    4、执行父类的构造函数

    public HelloA() {
        }
    输出
    

    5、执行子类的构造代码块

    {
            System.out.println("I’m B class");
        }
    输出:I'm B class
    

    6、执行子类的构造函数

    public HelloB() {
        }
    输出:无
    
    

    相关文章

      网友评论

          本文标题:当涉及到继承时,执行顺序

          本文链接:https://www.haomeiwen.com/subject/makjkctx.html