java中类的继承与类加载的初始化详解编程语言
了解包括继承在内的初始化,以对所发生的一切有个全局的把握,是很有用的。
1.当加载一个类时,如果编译器发现它有父类,那么首先加载父类,如果父类之上还有父类,那就继续加载上面的父类。
2.接下来,父类的static初始化就会被执行,然后是子类的 static初始化 ,以此类推。这种方式很重要,因为子类的static初始化可能会依赖于父类的成员能否被正确初始化。
3.至此为此,必要的类都加载完毕,对象就可以创建了。首先,父类对象中所有的成员变量执行初始化(静态的成员变量在上一步已执行了初始化),然后父类的构造器会被调用,接着子类的成员变量执行初始化,子类的构造器被调用。如果还有子类就一直按这个顺序执行下去。
class Insect{
private int i = 9;
protected int j;
Insect(){
System.out.println( i= + i + ,j= + j);
j = 39;
}
private static int x1 = printInit( static Insect.x1 initialized. );
static int printInit(String s){
System.out.println(s);
return 47;
}
}
public class Beetle extends Insect{
private int k = printInit( Beetle.k initialized.. );
public 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();
}
}
转载请注明来源网站:blog.ytso.com谢谢!
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/14748.html
c相关文章
- java calendar获取年_Java Calendar获取年、月、日、时间,设置年、月、日
- java怎么运行_怎样启动JAVA?「建议收藏」
- md5 java 实现_MD5加密的Java实现
- 你真的了解Java中的线程池吗
- 【原创】java中常见的修饰符
- 【错误记录】生成 Java 文档错误 ( Xxx.java:xx: 错误: 编码GBK的不可映射字符 )
- java JNI: C 语言调用 Java 方法示例详解编程语言
- Java学习笔记之十六浅谈Java中的继承与多态详解编程语言
- Java学习笔记之三java中的变量和常量详解编程语言
- JAVA继承典型例子—矩形详解编程语言
- Java接口之间的继承详解编程语言
- 在 Oracle 中使用 Java 包的好处(oraclejava包)
- Java问题-java进程占用内存过高,排查原因详解编程语言
- Linux下配置Java开发环境的指南(linux配置java环境)