關於繼承內部類——java程式設計思想示例程式分析; (轉)
關於繼承內部類——思想示例分析;
class Egg2 {
protected class Yolk {
public Yolk() {
System.out.println("Egg2.Yolk()");
}
public void f() {
System.out.println("Egg2.Yolk.f()");
}
}
private Yolk y = new Yolk();
public Egg2() {
System.out.println("New Egg2()");
}
public void insertYolk(Yolk yy) {
y = yy;
}
public void g() {
y.f();
}
}
public class BigEgg2 extends Egg2 {
public class Yolk extends Egg2.Yolk {
public Yolk() {
System.out.println("BigEgg2.Yolk()");
}
public void f() {
System.out.println("BigEgg2.Yolk.f()");
}
}
public BigEgg2() {
insertYolk(new Yolk());
}
public static void main(String[] args) {
Egg2 e2 = new BigEgg2();
e2.g();
}
}
程式執行結果:
Egg2.Yolk()
New Egg2()
Egg2.Yolk()
BigEgg2.Yolk()
BigEgg2.Yolk.f()
執行順序:
1、Egg2 e2 = new BigEgg2();子類在例項化之前,先父類構造方法,父類構造方法先初始化類成員;
有 private Yolk y = new Yolk();,y作為Egg2類的成員先被初始化;先呼叫Egg2內部類yolk的構造;列印出Egg2.Yolk();
2、呼叫Egg2的建構函式;列印出Egg2.Yolk();
3、呼叫BigEgg2的建構函式;因為它insertYolk(new Yolk());這裡的new Yolk是BigEgg2的內部類的例項;這個內部類繼承了Egg2中的內部類
;所以先呼叫了Egg2中Yolk的建構函式;列印出Egg2.Yolk();
4、呼叫BigEgg2.Yolk的建構函式;列印出BigEgg2.Yolk();
5、e2.g();列印出BigEgg2.Yolk();
我不知道分析的對不對,如果不對,請指教to:zhaoqb@neusoft.com或者zqb@hanhuasoft.com">zhaoqb@neusoft.com
或者
zqb@hanhuasoft.com
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10790690/viewspace-961345/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《Java程式設計思想》筆記07——內部類Java程式設計筆記
- Java程式設計思想學習筆記1 - 內部類Java程式設計筆記
- Java程式設計思想學習錄(連載之:內部類)Java程式設計
- 關於繼承與重寫的面試程式設計題繼承面試程式設計
- java-物件導向程式設計--繼承Java物件程式設計繼承
- Javascript繼承機制的設計思想JavaScript繼承
- Java內部類入門示例Java
- Java程式設計思想中關於閉包的一個例子Java程式設計
- scala_繼承、型別判斷、抽象類、匿名內部類繼承型別抽象
- Java:類與繼承Java繼承
- JAVA語言程式設計思想Java程式設計
- 重讀JAVA程式設計思想Java程式設計
- Java程式碼塊與Java繼承Java繼承
- JAVA內部類有關Java
- Java NIO程式設計示例Java程式設計
- JS物件導向程式設計(四):繼承JS物件程式設計繼承
- C++程式設計批評系列 繼承的本質(轉)C++程式設計繼承
- 使用內部和匿名類最佳化Java程式碼(轉)Java
- 關於java匿名內部類初始化法Java
- 關於Java中的物件、類、抽象類、介面、繼承之間的聯絡Java物件抽象繼承
- java關於繼承父類,需要實現父類中的構造方法Java繼承構造方法
- 《java程式設計思想》筆記1Java程式設計筆記
- java程式設計思想之註解Java程式設計
- Java的類與繼承Java繼承
- Go學習筆記:關於Java、Python、Go程式設計思想的不同Go筆記JavaPython程式設計
- Golang物件導向程式設計之繼承&虛基類【組合&介面】Golang物件程式設計繼承
- 如何在Java消除實現繼承和麵向介面程式設計Java繼承程式設計
- 關於螢幕程式設計(轉)程式設計
- Java類是如何預設繼承Object的?Java繼承Object
- 黑馬程式設計師Java培訓和Android培訓:內部類程式設計師JavaAndroid
- Java關於繼承中的轉型及其記憶體分配Java繼承記憶體
- 類的繼承_子類繼承父類繼承
- ~~核心程式設計(五):物件導向——多繼承~~程式設計物件繼承
- java入門之初讀___java程式設計思想Java程式設計
- java類內部程式碼執行順序Java
- ArrayList繼承關係分析繼承
- 高質量C++/C程式設計指南(第10章 類的繼承與組合) (轉)C++C程式程式設計繼承
- 程式設計思想之中間層檢測類程式設計