Java创建子类——初始化顺序

1、前记

  • 这个问题非常频繁的出现各个公司的Java笔试题中。
  • 其实这个问题我一点都不陌生,现在还清楚的记者当初看Thinking in Java的时候,觉得作者关注Java的点是如此的细致,自己甚是佩服和惊喜。
  • 自己还认认真真的将这个顺序记录在读书笔记中,但是终究还是敌不过时间。经典果然是经典,多少年的书了,里面的知识点,现在依然作为考点,令人唏嘘啊!

2、顺序

father static!!!
child static!!!
father NaN Static
father Constructor
child NaN Static
child Constructor

3、Verify Code

package interview.test;

public class TestJavaGrammer {
    static
    {
        System.out.println("father static!!!");
    }

    {
        System.out.println("father NaN Static");
    }

    TestJavaGrammer(){
        System.out.println("father Constructor");
    }
}

class Child extends TestJavaGrammer{
    static
    {
        System.out.println("child static!!!");
    }

    {
        System.out.println("child NaN Static");
    }

    Child(){
        System.out.println("child Constructor");
    }

    public static void main(String[] args) {
        new Child();
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容