關于接口配合匿名內部類來使用的問題
IPlayGame?i?=?new?IPlayGame(){
????public?void?playGame(){
????System.out.println("用匿名內部類的方式實現接口");
????}
?};以上的代碼,可不可以理解為通過一個IPlayGame接口的引用指向一個沒有名字但是通過重寫playGame()方法成功實現了IPlayGame接口的匿名內部類中的一個對象?
new?IPlayGame(){
????public?void?playGame(){
????System.out.println("用匿名內部類的方式實現接口");
????}
?}.playGame();這一段是不是可以理解為通過一個沒有名字但是通過重寫playGame()方法成功實現了IPlayGame接口的匿名內部類中的一個對象直接調用playGame()方法?
還請高人賜教。
2015-02-13
你說的是對的,匿名內部類也就是沒有名字的內部類,正因為沒有名字,所以匿名內部類只能使用一次,它通常用來簡化代碼編寫,但使用匿名內部類還有個前提條件:必須繼承一個父類或實現一個接口。
舉例:
interface?Person?{ ????public?void?eat(); } ? public?class?Demo?{ ????public?static?void?main(String[]?args)?{ ????????Person?p?=?new?Person()?{ ????????????public?void?eat()?{ ????????????????System.out.println("eat?something"); ????????????} ????????}; ????????p.eat(); ????} }2017-01-08
為什么你定義的接口中的方法eat()不是抽象的,定義在接口中的方法不應該都是抽象的嗎?