美文网首页
Java对象构造的时候函数的执行顺序

Java对象构造的时候函数的执行顺序

作者: swifterlc | 来源:发表于2018-12-13 09:57 被阅读0次
    public class tmp2 
    {
    
        public static void main(String[] args) 
        {
            // TODO Auto-generated method stub
            Child c = new Child();
        }
    }
    
    
    class Parent
    {
        static 
        {
            System.out.println("parent::static_constructor_block");
        }
        {
            System.out.println("parent::constructor_block");
        }
        Parent()
        {
            System.out.println("parent::constructor");
        }
    }
    
    class Child extends Parent
    {
        static
        {
            System.out.println("Child::static_constructor_block");
        }
        {
            System.out.println("Child::constructor_block");
        }
        Child(int _)
        {
            System.out.println("Child::delegate_constructor_block");
        }
        Child()
        {
            this(1/*调用委托构造,数字随意*/);
            System.out.println("Child::constructor");
        }
        private Member _member = new Member();
    }
    
    class Member
    {
        static
        {
            System.out.println("Member::static_constructor_block");
        }
        {
            System.out.println("Member::constructor_block");
        }
        Member(){
            System.out.println("Member::constructor");
        }
    }
    

    结果

    parent::static_constructor_block
    Child::static_constructor_block
    parent::constructor_block
    parent::constructor
    Child::constructor_block
    Member::static_constructor_block
    Member::constructor_block
    Member::constructor
    Child::delegate_constructor_block
    Child::constructor
    
    

    相关文章

      网友评论

          本文标题:Java对象构造的时候函数的执行顺序

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