java学习之对象的初始化过程
2015-05-12 12:58
531 查看
创建对象时,对象初始化过程:
1、类中数据成员的隐式初始化。(下图例子中num隐式初始化为0)
2、子类的构造函数进栈。
3、父类构造函数初始化。(因为子类构造函数第一行有隐式的super())
4、子类中成员变量显示初始化。(下图例子中num初始化为9)
5、构造代码块显示初始化。
父类构造函数调用子类中的show(),是因为当前建立的是子类对象,this指针指向当前子类对象,
父类对象的show()方法被子类对象的show()方法覆盖了,所以现在子类对象中找show()方法,
如果没有才在父类对象中找show()方法。
1、类中数据成员的隐式初始化。(下图例子中num隐式初始化为0)
2、子类的构造函数进栈。
3、父类构造函数初始化。(因为子类构造函数第一行有隐式的super())
4、子类中成员变量显示初始化。(下图例子中num初始化为9)
5、构造代码块显示初始化。
class Fu { Fu() { System.out.println("Fu constructor run..."); show(); } void show() { System.out.println("Fu show run"); } } class Zi extends Fu { int num = 9; { System.out.println("constructor code..." + num); num = 10; } Zi() { System.out.println("zi constructor run..." + num); } void show() { System.out.println("Zi show run..." + num); } } public class ClassTest { public static void main(String[] args) { new Zi(); } }
/*运行输出 Fu constructor run... Zi show run...0 constructor code...9 zi constructor run...10 */
父类构造函数调用子类中的show(),是因为当前建立的是子类对象,this指针指向当前子类对象,
父类对象的show()方法被子类对象的show()方法覆盖了,所以现在子类对象中找show()方法,
如果没有才在父类对象中找show()方法。
相关文章推荐
- java学习笔记_类建立对象初始化过程分析
- java学习13-面向对象(final和对象初始化过程)
- JAVA基础知识再学习(2)对象的初始化过程 & 对象的调用过程
- Java学习笔记(注释、对象初始化过程、单例模式)
- 浅析Java内存和创建对象时成员的初始化过程
- Java 父类子类的对象初始化过程
- Java学习笔记(十三):关于子类初始化的过程
- Java对象相关元素的初始化过程
- Java基础学习17(子类对象实例化的全过程图解,内存分配)
- Java 类和对象的初始化过程及初始化顺序
- 解析 Java 类和对象的初始化过程 由一个单态模式引出的问题谈起
- java 对象的初始化过程
- JAVA对象的初始化过程
- JAVA对象的初始化过程
- java对象初始化过程
- Java 父类子类的对象初始化过程及例子
- Java基础——Static修饰符+静态相关+帮助文档制作+对象初始化_调用成员过程+单例设计
- java学习笔记——java中对象的创建,初始化,引用的解析
- 学习笔记---对象初始化过程
- java中对象的初始化过程