匿名內部類new Runnable()


匿名內部類(Anonymous Inner Class),在創建實例的同時給出類的定義,所有這些在一個表達式中完成。

Java code ?
1
2
3
4
Runnable rn =  new  Runnable() {
     public  void  run() {
     }
};


相當於:

Java code ?
1
2
3
4
5
class  Anomymous  implements  Runnable {
     public  void  run() {
     }
}
Runnable rn =  new  Anomymous();


可以看到前者更簡潔。(注意前者最后的分號不能省略,編譯器把整個看作一條語句)
不過,匿名內部類僅限於只實例化一次的內部類,如果內部類需要多次實例化,通常用后者。
另外,匿名內部類要么繼承一個父類,要么實現一個接口,不能兩者兼有,實現接口時也不能實現多個接口。關於該問題可以參考這貼:

匿名內部類(Anonymous Inner Class),在創建實例的同時給出類的定義,所有這些在一個表達式中完成。

Java code ?
1
2
3
4
Runnable rn =  new  Runnable() {
     public  void  run() {
     }
};


相當於:

Java code ?
1
2
3
4
5
class  Anomymous  implements  Runnable {
     public  void  run() {
     }
}
Runnable rn =  new  Anomymous();


可以看到前者更簡潔。(注意前者最后的分號不能省略,編譯器把整個看作一條語句)
不過,匿名內部類僅限於只實例化一次的內部類,如果內部類需要多次實例化,通常用后者。
另外,匿名內部類要么繼承一個父類,要么實現一個接口,不能兩者兼有,實現接口時也不能實現多個接口。關於該問題可以參考這貼:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM