Java类(继承)初始化顺序
2023-09-11 14:17:56 时间
/**
* Created by xfyou on 2016/11/2.
* Java继承的初始化
*/
public class Beetle extends Insect {
int k = prt("Beetle.k initialized");
public Beetle() {
prt("k = " + k);
prt("j = " + j);
}
static int x2 = prt("static Beetle.x2 initialized");
static int prt(String s) {
System.out.println(s);
return 63;
}
public static void main(String[] args) {
prt("Beetle constructor");
Beetle b = new Beetle();
}
}
class Insect {
int i = 9;
int j;
public Insect() {
prt("i = " + i + ", j = " + j);
j = 39;
}
static int x1 = prt("static Insect.x1 initialized");
static int prt(String s) {
System.out.println(s);
return 47;
}
}
执行结果如下:
static Insect.x1 initialized
static Beetle.x2 initialized
Beetle constructor
i = 9, j = 0
Beetle.k initialized
k = 63
j = 39
执行顺序总结:
1、父类静态字段
2、父类静态初始化块
3、子类静态字段
4、子类静态初始化块
5、父类实例字段
6、父类实例初始化块
7、父类构造器
8、子类实例字段
9、子类实例初始化块
10、子类构造器
没有继承的单个类的初始化顺序为:
- 静态字段
- 静态初始化块
- 实例字段
- 实例初始化块
- 构造器
相关文章
- Java 使用正则表达式取出图片地址以及跳转的链接地址,来判断死链(一)
- Java开发学习----Maven聚合和继承解析
- 使用PPA在Elementary OS 'Luna'上安装Oracle Java 7
- JAVA础--利用java反射机制绕过编译时的类型检查和访问控制检查
- Java中toArray的用法探究(java数组与list转换)
- 阿里巴巴 Java 开发手册之安全规约(五)-------我的经验
- java继承中的初始化顺序
- java提取字符串数字,Java获取字符串中的数字
- Java学习-050-AES256 之 java.security.InvalidKeyException: Illegal key size or default parameters 解决方法
- java object为空判断null
- C++ 和 Java 对类继承的差异
- Java_比较两个图片的相似度
- JAVA接口继承、抽象类等
- Java编程常用数据转换:String与int互转、Date与String互转、BigDecimal与int比较(报错operator > cannot be applied to java.math.BigDecimal,int)
- Java面向对象基础知识笔记:方法、构造方法、方法重载、继承、多态、抽象类、接口、静态字段与静态方法、包、作用域、classpath与jar、模块依赖关系
- Java之throw和throws的区别及java中的异常处理
- 【JAVA UI】HarmonyOS Glide简单使用
- Java面向对象程序设计|二人间对话示例
- java学习路线-Java技术人员之路从0基础到高级
- java JDBC 连接数据库查询数据与直接使用sql的疑问
- Java 国王放麦子
- Java中“==”与equals()
- Java虚拟机解析篇之---内存模型
- 【Java】logback日志显示完整包名
- JAVA继承综合小练习
- Java中java.util.Arrays参考指南