zoukankan      html  css  js  c++  java
  • Java创建对象的初始化顺序

     

    package com.zhang.test;
    
    class Parent
    {
      private static int j=method();
      private int i=test();
      
      static
      {
         System.out.println(1);
      }
      
      {
         System.out.println(2);
      }
      
      Parent()
      {
         System.out.println(3);
      }
    
      //执行此方法时,因为子类也有,发生了方法重写。所以执行子类的test()方法
      public int test(){
          System.out.println(4);
          return 1;
      }
    
      public static  int method(){
          System.out.println(5);
          return 1;
      }
    
    }
    
    class Child extends Parent
    {
        private static int j=method();
        private int i=test();
          
        static
        {
             System.out.println(6);
        }
          
        {
             System.out.println(7);
        }
          
        Child()
        {
             System.out.println(8);
        }
        public int test(){
            System.out.println(9);
            return 1;
        }
    
        public static  int method(){
            System.out.println(10);
            return 1;
        }
     
    }
    
    /**
     * 只执行一次
     * 初始化父类 静态属性、静态方法、静态代码块按顺序执行
     * 初始化子类 静态属性、静态方法、静态代码块按顺序执行
     *
     * 每new一次执行一次
     * 实例化父类 非静态属性、非静态方法、非静态代码块按顺序执行,执行参构造方法
     * 实例化子类 非静态属性、非静态方法、非静态代码块按顺序执行,执行参构造方法
     */
    public class Test
    {
       public static void main(String[] args)
       {
           new Child();
           new Parent();
           new Child();
       }
    }

  • 相关阅读:
    进程池Pool
    进程间通信-Queue
    多任务版udp聊天器
    列表循环放引用并写出打印结果
    协程实现tcp两个客户端的通讯
    正则匹配身份证和邮箱
    python中上双互斥锁的线程执行流程
    小巧的http live streaming m3u8播放器
    js实现@提到好友
    mongoose多级嵌套操作
  • 原文地址:https://www.cnblogs.com/zhangjinru123/p/10619194.html
Copyright © 2011-2022 走看看