• JAVA 父类与子类初始化顺序问题


    main方法-->子类对象的初始化语句(new className()语句)--->子类构造【因为继承的缘故,它先不会执行】--->父类构造【这一步先不会执行】--->父类静态变量----->子类静态变量---->初始化父类变量(按顺序)--->父类构造---->子类变量初始初始(按顺序)--->子类构造--->运行main后的语句--->程序结束。(按eclipse得debug顺序记录)

    无继承的类初始化顺序:静态变量--->静态初始化块------>变量---->初始化块----->构造器。

    附测试程序:

    class Insect {      private int i =9;      protected int j;        public Insect()     {          System.out.println("i = "+i+",j="+j);          j=39;      }      private static int x1 = printInit("static intx1 initialized");        static int printInit(String s)     {            System.out.println(s);            return 47;      } }

    public class Beetle extends Insect {        private int k = printInit("beetle.k initialized");            Beetle()        {              System.out.println("k="+k);              System.out.println("j = " +j);        }            private static int x2 = printInit("static beetle.x2 initialized");        public static void main(String[] args)       {             System.out.println("beetle constructor");             Beetle b = new Beetle();

           }

    }

    其运行结果为

    static intx1 initialized static beetle.x2 initialized beetle constructor i = 9,j=0 beetle.k initialized k=47 j = 39

  • 相关阅读:
    windows下安装redis
    关于 tomcat 集群中 session 共享的三种方法
    利用Nginx做负载均衡
    Spring4 MVC Hibernate4集成
    <mvc:annotation-driven />到底帮我们做了啥
    Spring 开启Annotation <context:annotation-config> 和 <context:component-scan>诠释及区别
    JPA注解指南
    Hibernate与Jpa的关系
    ActiveMQ实现负载均衡+高可用部署方案
    信号接口-视频输出端口介绍
  • 原文地址:https://www.cnblogs.com/heartstage/p/3409674.html
Copyright © 2020-2023  润新知