類的嵌入
(1)類可以嵌入另一個(gè)類中,但不能嵌入接口中。 (2)在靜態(tài)方法或其他方法中,不能直接創(chuàng)建內(nèi)部類對象,需通過手段來取得。
手段有兩種:
class A {
class B {}
B getB() {
B b = new B();
return b;
}
}
static void m() {
A a = new A();
A.B ab = a.getB(); // 或者是 A.B ab = a.new B();
}
|
(3)一個(gè)類繼承了另一個(gè)類的內(nèi)部類,因?yàn)槌愂莾?nèi)部類,而內(nèi)部類的構(gòu)造方法不能自動(dòng)被調(diào)用,這樣就需要在子類的構(gòu)造方法中明確的調(diào)用超類的構(gòu)造方法。接上例:
class C extends A.B {
C() {
new A().super(); // 這一句就實(shí)現(xiàn)了對內(nèi)部類構(gòu)造方法的調(diào)用。
}
}
|
構(gòu)造方法也可這樣寫:
C(A a) {
a.super();
} // 使用這個(gè)構(gòu)造方法創(chuàng)建對象,要寫成C c = new C(a); a是A的對象。
|
|