java中涉及继承关系的初始化顺序
来源:互联网 发布:php的filegetcontents 编辑:程序博客网 时间:2024/05/20 02:26
在http://blog.csdn.net/xdugucc/article/details/78217098这篇博文中对单个类成员变量初始化和构造器初始化顺序做了介绍。
而这篇将讲解具有继承关系的类中的初始化顺序。
一个类中具有静态成员和静态代码块,非静态成员和非静态代码块,构造器这些需要初始化的东西。现在他有一个父类。那么当生成一个子类对象时,必然需要对父类中需要初始化的东西进行初始化。顺序如下:
(如果静态成员和静态代码块还未初始化过)
1.父类静态成员和静态代码块
2.子类静态成员和子类静态代码块
3.父类非静态成员和非静态代码块
4.父类构造器
5.子类非静态成员和子类非静态代码块
6.子类构造器
来看一个例子吧,改编自Thinking in java.
class Bowl {Bowl(int marker) {System.out.println("Bowl(" + marker + ")");}}class Table {static Bowl bowl1 = new Bowl(1);Table() {System.out.println("Table()");} Bowl bowl2 = new Bowl(2);}class Cupboard extends Table{Bowl bowl3 = new Bowl(3);static Bowl bowl4 = new Bowl(4);Cupboard() {System.out.println("cupboard()");;}}public class StaticInitializationWithExtention {public static void main(String[] args) {new Cupboard();}}/**output: * bow(1) * bow(4) * bow(2) * table() * bow(3) * cuoboard() */
根据所说的初始化顺序应该能很快得出正确的结果。
阅读全文
0 0
- java中涉及继承关系的初始化顺序
- Java继承关系中类的初始化顺序
- JAVA中继承时的初始化顺序
- java继承中初始化的顺序
- Java中类继承的初始化顺序
- java中继承的初始化顺序
- java的继承关系中对象的加载和初始化顺序
- 继承关系中,子类父类的初始化顺序
- java中继承初始化顺序
- JAVA继承关系中的初始化顺序
- Java类继承关系中的初始化顺序
- 多重继承关系的初始化顺序
- Java:继承的初始化顺序
- java继承中静态成员变量的初始化顺序
- 黑马程序员-java基础-继承中类的初始化顺序
- Java中继承关系的构造函数的调用顺序
- JAVA中继承与初始化顺序
- Java继承关系中静态代码块的顺序问题
- less
- 数据库安装时出现的问题
- composer下laravel5.4安装常见出错解决方法
- STM32串口接收不定长数据原理与源程序
- 编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
- java中涉及继承关系的初始化顺序
- 顺序表应用1:多余元素删除之移位算法
- 校园网neetkeepr在Ubuntu系统下的替换方法(openkeeper方法)
- 20171012WindowsPrj08_04IAT Hook封装
- 微软、谷歌、亚马逊、Facebook等硅谷大厂91个开源软件盘点(附下载地址)
- 大数加法
- 总结
- 第三方类库-JSON-Jackson
- Java注解