亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于覆蓋內部類的技術知識

關于覆蓋內部類的技術知識

胡子哥哥 2018-07-23 11:14:38
求解圖中的運行結果為什么是這樣的。
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

Java中初始化子類的時候,首先加載父類的靜態變量和靜態語句塊(按照代碼上下順序執行),然后加載子類的靜態變量和靜態語句塊(按照代碼上下順序執行),然后加載父類的非靜態變量和非靜態語句塊(按照代碼上下順序執行),再加載父類的構造函數,然后加載子類的非靜態變量和非靜態語句塊(按照代碼上下順序執行),最后加載子類的構造函數。

在此程序中,初始化子類BigEgg2的時候需先加載其父類Egg2,初始化Egg2中的變量y即實例化Egg2中的Yolk,輸出第一行。
然后調用Egg2的構造方法,輸出第二行。
進入子類BigEgg2的構造方法,在構造方法中調用insertYolk方法,其參數是實例化Yolk類,但此Yolk指的是BigEgg2中的Yolk,因為其繼承自Egg2中Yolk,故先調用Egg2中的構造方法,輸出第三行。
然后調用BigEgg2中的Yolk構造方法,輸出第四行。
insertYolk方法調用后使得變量y指向BigEgg2中的Yolk實例,因此調用g方法的時候,其中y.f()調用的是BigEgg2中的Yolk中的f方法,輸出第五行


查看完整回答
反對 回復 2018-08-10
  • 1 回答
  • 0 關注
  • 650 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號