Java 匿名類
阿新 • • 發佈:2021-02-07
Java 中可以實現一個類中包含另外一個類,且不需要提供任何的類名直接例項化。
主要是用於在我們需要的時候建立一個物件來執行特定的任務,可以使程式碼更加簡潔。
匿名類是不能有名字的類,它們不能被引用,只能在建立時用 new 語句來宣告它們。
匿名類語法格式:
class outerClass {
// 定義一個匿名類
object1 = new Type(parameterList) {
// 匿名類程式碼
};
}
以上的程式碼建立了一個匿名類物件 object1,匿名類是表示式形式定義的,所以末尾以分號 ; 來結束。
匿名類繼承一個父類
以下例項中,建立了 Test1 類,該類只有一個方法 display(),Demo 類繼承了 Polygon 類並重寫了 Test1 類的 display() 方法
例項:
class Test1 {
public void display() {
System.out.println("在 test 類內部");
}
}
class Demo {
public void createClass() {
// 建立的匿名類繼承了 Polygon 類
Test1 t1 = new Test1() {
public void display() {
System.out.println("在匿名類內部。");
}
};
t1.display();
}
}
class Main {
public static void main(String[] args) {
Demo demo = new Demo();
demo.createClass();
}
}
執行以上程式碼,匿名類的物件 t1 會被建立,該物件會呼叫匿名類的 display() 方法,輸出結果為:
在匿名類內部。
匿名類實現一個介面
以下例項建立的匿名類實現了 Test1 介面:
例項
interface Test1 {
public void display();
}
class Demo {
public void createClass() {
// 匿名類實現一個介面
Test1 t1 = new Test1() {
public void display() {
System.out.println("在匿名類內部。");
}
};
t1.display();
}
}
class Main {
public static void main(String[] args) {
Demo an = new Demo();
an.createClass();
}
}
輸出結果為:
在匿名類內部。