Java 匿名類

Java 對象和類 Java 對象和類

Java 中可以實現一個類中包含另外一個類,且不需要提供任何的類名直接實例化。

主要是用于在我們需要的時候創建一個對象來執行特定的任務,可以使代碼更加簡潔。

匿名類是不能有名字的類,它們不能被引用,只能在創建時用 new 語句來聲明它們。

匿名類語法格式:

class outerClass {

    // 定義一個匿名類
    object1 = new Type(parameterList) {
         // 匿名類代碼
    };
}

以上的代碼創建了一個匿名類對象 object1,匿名類是表達式形式定義的,所以末尾以分號 ; 來結束。

匿名類通常繼承一個父類或實現一個接口。

匿名類繼承一個父類

以下實例中,創建了 Polygon 類,該類只有一個方法 display(),AnonymousDemo 類繼承了 Polygon 類并重寫了 Polygon 類的 display() 方法<:/p>

實例

class Polygon {
   public void display() {
      System.out.println("在 Polygon 類內部");
   }
}

class AnonymousDemo {
   public void createClass() {

      // 創建的匿名類繼承了 Polygon 類
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("在匿名類內部。");
         }
      };
      p1.display();
   }
}

class Main {
   public static void main(String[] args) {
       AnonymousDemo an = new AnonymousDemo();
       an.createClass();
   }
}

執行以上代碼,匿名類的對象 p1 會被創建,該對象會調用匿名類的 display() 方法,輸出結果為:

在匿名類內部。

匿名類實現一個接口

以下實例創建的匿名類實現了 Polygon 接口:

實例

interface Polygon {
   public void display();
}

class AnonymousDemo {
   public void createClass() {

      // 匿名類實現一個接口
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("在匿名類內部。");
         }
      };
      p1.display();
   }
}

class Main {
   public static void main(String[] args) {
      AnonymousDemo an = new AnonymousDemo();
      an.createClass();
   }
}

輸出結果為:

在匿名類內部。

Java 對象和類 Java 對象和類