《java編程思想》復用類一章,提出基類的子對象的構建過程是從基類“向外”進行擴散的。
下面通過實例進行講解,首先看下面的代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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()
函數(shù)中,經過單步調試可以看到,創(chuàng)建cat類型對象時候,首先需要找到cat類的父類對象,即從cat類尋找其父類animal類的構造器,最后尋找animal的父類biology類的構造器。
找到biology基類之后,按照下面順序,執(zhí)行各自的構造函數(shù)
所以,最終的輸出結果,如控制臺輸出所示。
需要注意的是,即使cat類不創(chuàng)建構造器,編譯器會創(chuàng)建默認的構造器。仍然會調用到基類的構造器。輸出結果如下:
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
原文鏈接:https://blog.csdn.net/yangyong0717/article/details/78386477