返回列表 發帖

匿名類別撰寫

當我們在撰寫抽象類別的時候,我們會需要建立子類別,並且透過繼承來去Override改寫抽象類別底下的方法。

但有時候我們這個抽象類別底下要做的事情,可能是一次性的。(也就是只有在這個地方會被使用到)

這時候如果我們額外為他建立一個類別,又顯得有點浪費

舉例來說,我們的Click事件,如果我們為我們的Listener裡面的類別,都獨立建立成為一個Class 那麼會發現會需要建立很多個檔案。

因此我們可以透過匿名類別的撰寫,來將抽象類別實體化,進而實作內部的方法。

也就是說,我們是建立一個沒有名字的類別,實做他底下的抽象方法。
  1.         Bird bird = new Bird(){
  2.                         @Override
  3.                         public void Eat() {
  4.                                 // TODO 自動產生的方法 Stub
  5.                                 System.out.println("我會吃飯");
  6.                         }

  7.                         @Override
  8.                         public void Walk() {
  9.                                 // TODO 自動產生的方法 Stub
  10.                                 System.out.println("我會走路");
  11.                         }
  12.                        
  13.                
  14.                 };
  15.                
  16.                 bird.Name = "我是麻雀";
  17.                 bird.Eat();
  18.                 bird.Walk();
  19.         }
複製代碼

返回列表