Java 继承与初始化
2011-07-21 09:36
218 查看
import static net.mindview.util.Print.*class Insect{ private int i=9; protected int j; Insect(){ print("i="+i+",j="+j); j=39; } private static int x1=printInit("static Insect.x1 initialized"); static int printInit(String s){ print(s); return 47; }}public class Beetle extends Insect{ private int k=printInit("Beetle.k initialized"); public Beetle(){ print("k="+k); print("j="+j); } private static int x2=printInit("static Beetle.x2 initialized"); public static void main(String[] args){ print("Beetle constructor"); Beetle b=new Beetle(); }}输出结果是:static Insect.x1 initializedstatic Beetle.x2 initializedBeetle constructori=9,j=0Beetle.k initializedk=47j=39本人是想问,private static int x1已经是private了,为什么继承类Beetle还能调用到,还有就是为什么static Insect.x1 initialized和static Insect.x2 initialized会先被初始化小菜提问,希望高手解答,别笑我~~~
因为是静态方法。JAVA初始化顺序 1、调用顺序:JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的,静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。先初始化父类的静态代码--->初始化子类的静态代码-->(创建实例时,如果不创建实例,则后面的不执行)初始化父类的非静态代码--->初始化父类构造函数--->初始化子类非静态代码--->初始化子类构造函数其他说明:2 、类只有在使用New调用创建的时候才会被JAVA类装载器装入3、创建类实例时,首先按照父子继承关系进行初始化4、类实例创建时候,首先初始化块部分先执行,然后是构造方法;然后从本类继承的子类的初始化块执行,最后是子类的构造方法5、类消除时候,首先消除子类部分,再消除父类部分
因为是静态方法。JAVA初始化顺序 1、调用顺序:JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的,静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。先初始化父类的静态代码--->初始化子类的静态代码-->(创建实例时,如果不创建实例,则后面的不执行)初始化父类的非静态代码--->初始化父类构造函数--->初始化子类非静态代码--->初始化子类构造函数其他说明:2 、类只有在使用New调用创建的时候才会被JAVA类装载器装入3、创建类实例时,首先按照父子继承关系进行初始化4、类实例创建时候,首先初始化块部分先执行,然后是构造方法;然后从本类继承的子类的初始化块执行,最后是子类的构造方法5、类消除时候,首先消除子类部分,再消除父类部分
相关文章推荐
- java中继承与初始化顺序 2
- Java中类继承的初始化顺序
- Thinking in Java 之 继承与初始化
- Java继承的初始化
- Java继承与初始化
- JAVA学习笔记之继承和父类子类实例变量的初始化内存分析图
- java之组合,继承,以及多态初始化的顺序
- JAVA第七节-继承,继承中方法重写,继承的初始化顺序,final关键字,super关键字,object类
- Java中继承与初始化
- java继承中的初始化循序
- 继承与初始化过程(摘自Thinking in java 3th edition)
- Java类继承关系中的初始化顺序
- Java学习记录(一):Java中继承与静态static、非静态、构造方法等的初始化顺序
- 黑马程序员-java基础-继承中类的初始化顺序
- Java 含有继承类的代码初始化顺序
- java 继承 static 初始化过程分析
- java知识点 (继承、对象、复用类、初始化、访问权限控制等)
- java中继承的初始化顺序
- 【深入理解JVM】:Java类继承关系中的初始化顺序
- Java第11次作业:什么是继承?继承的好处?什么是覆写?super()?构造代码块?子父类初始化顺序? 抽象类能用final声明吗?final关键字声明类 方法 变量以及全局常量?抽象类的构造方法?