• Tags ,         
  • 2018-03-19  10:53:39        
  • 22 °C    
    class A {
    
        static {
            System.out.print("1");
        }
    
        public A() {
            System.out.print("2");
        }
    }
    
    class B extends A{
    
        static {
            System.out.print("a");
        }
    
        public B() {
            System.out.print("b");
        }
    }
    
    public class Hello {
    
        public static void main(String[] args) {
            A ab = new B();
            ab = new B();
        }
    
    }
    

    执行结果:1a2b2b。创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。

    如果不能给出此题的正确答案,说明之前Java类加载机制还没有完全理解,赶紧再看看吧。

     
    转载请保留页面地址:https://www.breakyizhan.com/javamianshiti/2417.html