如果乙個方法要的形參是介面,其實他要的是該介面的實現類的物件
不採用內部類時,想要實現操作類中方法:不僅需要定義操作類和介面,還要定義重寫介面的實現類
介面:
package com.oop.demo10;
public
inte***ce
jumping
繼承介面的實現類:
package com.oop.demo10;
/*實現類
*/public
class
catimplements
jumping
}
操作類
package com.oop.demo10;
/*操作類
*/public
class
jumpingoperator
}
主函式測試:
package com.oop.demo10;
/* * 測試類
*/public
class
jumpingtest
}
**採用內部類,實現操作類中方法:**介面、操作類不變的前提下,不用再重新定義乙個介面的實現類
主函式如今為:
package com.oop.demo10;
/* * 測試類
*/public
class
jumpingtest})
; jo.
method
(new
jumping()
});//依然是呼叫了操作類中的method方法,但是裡面的實參從介面的實現類物件變成了內部類物件
}}
這樣不管寫多少個「可以跳高了」,都可以完成,而不用定義多個實現 匿名內部類重寫多個方法呼叫
案例一 class demo05 nonameinnerclass inte ce inter 匿名內部類只針對重寫乙個方法的時候使用,如果多個方法的時候就用有名字的類了。class outer public void show2 show1 new inter public void show2 ...
內部類和匿名類
內部類在外部類中有特權 內部類可以毫無限制地訪問外部類的所有成員。編譯之後,內部類也可產生 單獨的.class檔案,檔名為 外部類名 內部類名.class例5.22 內部類使用示例。public class outerclass public static void main string args...
內部類與匿名類
package ray 1 成員內部類 在類重方法外宣告的內部類 1.沒有static修飾的,普通成員內部類 2.被static修飾的,巢狀類 2 區域性內部類 在方法中宣告的內部類 1.普通區域性內部類 2.匿名內部類 1 普通成員內部類 this與.new class outer public ...