如何理解Java中基类子对象的构建过程从"基类向外"进行扩散的?

网友投稿 277 2023-01-09


如何理解Java中基类子对象的构建过程从"基类向外"进行扩散的?

《java编程思想》复用类一章,提出基类的子对象的构建过程是从基类“向外”进行扩http://散的。

下面通过实例进行讲解,首先看下面的代码:

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 AeymforVOuto-generated constructor stub

print("Drawing constructor");

}

}

程序运行结果:

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

在main()函数中,经过单步调试可以看到,创建Cat类型对象时候,首先需要找到Cat类的父类对象,即从Cat类寻找其父类Animal类的构造器,最后寻找Animal的父类Biology类的构造器。

找到Biology基类之后,按照下面顺序,执行各自的构造函数

所以,最终的输出结果,如控制台输出所示。

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring boot+自定义 AOP 实现全局校验的实例代码
下一篇:子类实现接口对象实例化(java接口可以实例化对象?)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~