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
JAVA 父类与子类初始化顺序问题的更多相关文章
- java中父类和子类初始化顺序
顺序 1. 父类中静态成员变量和静态代码块 2. 子类中静态成员变量和静态代码块 3. 父类中普通成员变量和代码块,父类的构造函数 4. 子类中普通成员变量和代码块,子类的构造函数 其中“和”字两端的 ...
- Java静态函数、父类、子类执行顺序
package class_test; /** * 静态函数.父类.子类执行顺序 * @author root * */ public class Test { public static void ...
- Java 类成员的初始化顺序
Java 类成员的初始化顺序 前言:开发中碰到一个Java文件中有很多的成员变量,包括静态和非静态的,还有很多的初始化方法,很好奇这些成员的初始化顺序,在这里作个研究. 1 无继承情况下的Jav ...
- Java中的成员初始化顺序和内存分配过程
Java中的成员初始化顺序和内存分配过程 原帖是这样描述的: http://java.dzone.com/articles/java-object-initialization?utm_source= ...
- Java类的成员初始化顺序
Java类的成员初始化顺序 2017-06-01 代码: public class InitializeSequence { public static void main(String[] args ...
- java类的成员初始化顺序和初始化块知识
java类的成员初始化顺序和初始化块知识 转自:http://blog.csdn.net/lgfeng218/article/details/7606735 属性.方法.构造方法和自由块都是类中的成员 ...
- Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序
实例化子类时,父类与子类中的静态代码块.实例代码块.静态变量.实例变量.构造函数的执行顺序是怎样的? 代码执行的优先级为: firest:静态部分 second:实例化过程 详细顺序为: 1.父类静态 ...
- Java父类与子类方法调用顺序
父类 FatherClass package 父类与子类方法调用顺序; /** * 父类 * @author shundong * */ public class FatherClass { priv ...
- Java静态方法,静态变量,初始化顺序
1. 静态方法: 成员变量分为实例变量和静态变量.其中实例变量属于某一个具体的实例,必须在类实例化后才真正存在,不同的对象拥有不同的实例变量.而静态变量被该类所有的对象公有(相当于全局变量),不需要实 ...
随机推荐
- css3 skew坐标轴笔记
transform是css3中对于性能来说是比较安全的 在二维空间里面,skew有两个属性值:skewX,skewY,图形的变化也就是针对这两个值来操作: transform: skewX(45deg ...
- 查看Linux系统用户登录日志
日志: /var/log/wtmp说明: 此文件是二进制文件,查看方法如下:该日志文件永久记录每个用户登录.注销及系统的启动.停机的事件.因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加 ...
- Ubuntu系列问题
一.Ubuntu16.04 intel_rapl : no valid rapl domains found in packge0 echo 'blacklist intel_rapl' >&g ...
- Spring 学习笔记(五)—— Bean之间的关系、作用域、自动装配
继承 Spring提供了配置信息的继承机制,可以通过为<bean>元素指定parent值重用已有的<bean>元素的配置信息. <?xml version="1 ...
- user-select & css
user-select & css https://developer.mozilla.org/en-US/docs/Web/CSS/user-select https://css-trick ...
- CF 787D Legacy(线段树思想构图+最短路)
D. Legacy time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...
- HITOJ 2739 The Chinese Postman Problem(欧拉回路+最小费用流)
The Chinese Postman Problem My Tags (Edit) Source : bin3 Time limit : 1 sec Memory limit : 6 ...
- [YNOI2017][bzoj4811][luogu3613] 由乃的OJ/睡觉困难综合症 [压位+树链剖分+线段树]
题面 BZOJ题面,比较不清晰 Luogu题面,写的比较清楚 思路 原题目 我们先看这道题的原题目NOI2014起床困难综合症 的确就是上树的带修改版本 那么我们先来解决这个原版的序列上单次询问 二进 ...
- 原来Java大数据才是真正的高富帅!
大数据时代,中国IT环境也将面临重新洗牌,不仅仅是企业,更是程序员们转型可遇而不可求的机遇. 国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发.开发程序员的 ...
- BZOJ 1901: Zju2112 Dynamic Rankings | 带修改主席树
题目: emmmm是个权限题 题解: 带修改主席树的板子题,核心思想是用树状数组维护动态前缀和的性质来支持修改 修改的时候修改类似树状数组一样进行logn个Insert 查询的时候同理,树状数组的方法 ...