通过实例学习Java对象的构造过程(二)
文章作者 100test 发表时间 2007:03:14 16:51:57
来源 100Test.Com百考试题网
对分析本文的实例最重要的,用一句话说,就是“父类的构造方法调用发生在子类的变量初始化之前”。可以用下面的例子来证明:
// Petstore.java class Animal { Animal() { System.out.println("Animal"). } } class Cat extends Animal { Cat() { System.out.println("Cat"). } } class Store { Store() { System.out.println("Store"). } } public class Petstore extends Store{ Cat cat = new Cat(). Petstore() { System.out.println("Petstore"). } public static void main(String[] args) { new Petstore(). } } |
运行这段代码,它的执行结果如下:
Store
Animal
Cat
Petstore
从结果中可以看出,在创建一个Petstore类的实例时,首先调用了它的父类Store的构造方法;然后试图创建并初始化变量cat;在创建cat时,首先调用了Cat类的父类Animal的构造方法;其后才是Cat的构造方法主体,最后才是Petstore类的构造方法的主体。