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

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于接口配合匿名內部類來使用的問題

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()方法?

還請高人賜教。

正在回答

2 回答

你說的是對的,匿名內部類也就是沒有名字的內部類,正因為沒有名字,所以匿名內部類只能使用一次,它通常用來簡化代碼編寫,但使用匿名內部類還有個前提條件:必須繼承一個父類或實現一個接口。

舉例:


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();
????}
}


0 回復 有任何疑惑可以回復我~
#1

MiseryKyo 提問者

非常感謝賜教!
2015-02-13 回復 有任何疑惑可以回復我~

為什么你定義的接口中的方法eat()不是抽象的,定義在接口中的方法不應該都是抽象的嗎?

0 回復 有任何疑惑可以回復我~
#1

畢業了的小怪獸

你說得對,但如果沒有寫abstract關鍵字,系統會自己加上啦,所以這里沒寫也不是錯
2017-08-08 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531144    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

關于接口配合匿名內部類來使用的問題

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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