當我們在撰寫抽象類別的時候,我們會需要建立子類別,並且透過繼承來去Override改寫抽象類別底下的方法。
但有時候我們這個抽象類別底下要做的事情,可能是一次性的。(也就是只有在這個地方會被使用到)
這時候如果我們額外為他建立一個類別,又顯得有點浪費
舉例來說,我們的Click事件,如果我們為我們的Listener裡面的類別,都獨立建立成為一個Class 那麼會發現會需要建立很多個檔案。
因此我們可以透過匿名類別的撰寫,來將抽象類別實體化,進而實作內部的方法。
也就是說,我們是建立一個沒有名字的類別,實做他底下的抽象方法。- Bird bird = new Bird(){
- @Override
- public void Eat() {
- // TODO 自動產生的方法 Stub
- System.out.println("我會吃飯");
- }
- @Override
- public void Walk() {
- // TODO 自動產生的方法 Stub
- System.out.println("我會走路");
- }
-
-
- };
-
- bird.Name = "我是麻雀";
- bird.Eat();
- bird.Walk();
- }
複製代碼 |