如何理解Java中基类子对象的构建过程从"基类向外"进行扩散的?
时间:2021-01-01 13:05:08|栏目:JAVA代码|点击: 次
《Java编程思想》复用类一章,提出基类的子对象的构建过程是从基类“向外”进行扩散的。
下面通过实例进行讲解,首先看下面的代码:
import static net.mindview.util.Print.*; //《java编程思想》提供的类库
/**
* @author Administrator
*
*/
public class Cat extends Animal {
public Cat() {
// TODO Auto-generated constructor stub
print("Caretoon constructor");
}
public static void main(String[] args) {
Cat x = new Cat();
}
}
class Biology {
Biology() {
// TODO Auto-generated constructor stub
print("Art constructor");
}
}
class Animal extends Biology {
Animal() {
// TODO Auto-generated constructor stub
print("Drawing constructor");
}
}
程序运行结果:

在这里共声明了三个类,分别是Biology, Animal,Cat. 继承关系如下:

在main()函数中,经过单步调试可以看到,创建Cat类型对象时候,首先需要找到Cat类的父类对象,即从Cat类寻找其父类Animal类的构造器,最后寻找Animal的父类Biology类的构造器。
找到Biology基类之后,按照下面顺序,执行各自的构造函数

所以,最终的输出结果,如控制台输出所示。
需要注意的是,即使Cat类不创建构造器,编译器会创建默认的构造器。仍然会调用到基类的构造器。输出结果如下:

总结
上一篇:java实现文件断点续传下载功能
栏 目:JAVA代码
本文标题:如何理解Java中基类子对象的构建过程从"基类向外"进行扩散的?
本文地址:http://www.codeinn.net/misctech/38916.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




