Java子类初始化与基类的关系
从外部来看子类,它就像是一个与基类具有相同接口的新类,或许还会有一些额外的方法跟属性。但是继承并不只是复制基类的接口。当创建一个子类对象时,该子类对象内部会包含一个基类对象,这个被包含的对象与直接创建的基类对象是一样的,二者的区别就在于,后者来自外部,而基类的子对象被包装在到处类对象内部
public class Cartoon extends Drawing{Cartoon(){System.out.println("Cartoon constructor");}public static void main(String[] args) {new Cartoon();}
}
class Art{Art(){System.out.println("Art constructor");}
}
class Drawing extends Art{Drawing(){System.out.println("Drawing constructor");}
}
/*输出结果:
Art constructor
Drawing constructor
Cartoon constructor
*/
由此例子可以发现,构造过程是由基类往外扩散的,所有基类在导出类构造器可以访问它之前,就已经完成了初始化。即使你不为Cartoon()创建构造器,编译器也会为你合成一个默认的构造器,该构造器将调用基类的构造器
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
