Java 匿名类
在 Java 中,我们可以通过匿名类,在不同类名的前提下,直接扩展一个类或接口,并实例化一个对象。在本教程中,我们将通过示例学习 Java 中的匿名类。
在本教程中,我们将通过示例学习 Java 中的匿名类。
Java 匿名类
在 Java 中,我们可以通过匿名类,在不同类名的前提下,直接扩展一个类或接口,并实例化一个对象。匿名类的本质是继承或实现一个现有的类或接口。
匿名类的语法如下:
Type type = new Type() {
// 类成员
};
匿名类通常扩展子类或实现接口。
说明:
Type
是一个现有的类型,可以是:- 接口
- 可以被继承的类
Type() { ... }
表示一个匿名类,{ ... }
是类的主体。new Type() { ... }
表示构造了一个匿名类的对象。type
是变量,指向刚刚创建的匿名类对象,其类型是 Type 的子类,也就是匿名类。;
是赋值语句的结束。
示例 1:扩展类的匿名类
class Polygon {
public void display() {
System.out.println("Inside the Polygon class");
}
}
public class Main {
public static void main(String[] args) {
Polygon p =
new Polygon() {
public void display() {
System.out.println("在匿名类中。");
}
};
p.display();
}
}
输出
在匿名类中。
在上面的例子中,我们创建了一个 Polygon
类, 它只有一个 display()
方法。
然后我们创建了一个匿名类扩展了 Polygon
类并覆盖了 display()
方法。并为匿名类实例化了一个对象 p
,然后对象调用 display()
方法。
示例 2:实现接口的匿名类
interface Polygon {
void display();
}
public class Main {
public static void main(String[] args) {
Polygon p =
new Polygon() {
public void display() {
System.out.println("在匿名类中。");
}
};
p.display();
}
}
输出
在匿名类中。
在上面的例子中,我们创建了一个实现 Polygon
接口的匿名类。
匿名类的优点
-
在匿名类只在需要的时候才被创建,省去了创建一个常规类的麻烦。也就是说,创建对象是为了执行某些特定任务。
-
匿名类还帮助我们使代码简洁。