企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Java 匿名类 > 原文: [https://www.programiz.com/java-programming/anonymous-class](https://www.programiz.com/java-programming/anonymous-class) #### 在本教程中,您将借助示例学习 Java 中的匿名类。 在 Java 中,一个类可以包含另一个称为嵌套类的类。 可以在不提供任何名称的情况下创建嵌套类。 没有任何名称的嵌套类称为匿名类。 必须在另一个类中定义一个匿名类。 因此,它也被称为匿名内部类。 其语法为: ```java class outerClass { // defining anonymous class object1 = new Type(parameterList) { // body of the anonymous class }; } ``` 匿名类通常扩展子类或实现接口。 在这里,**类型**可以是 1. 匿名类扩展的超类 2. 匿名类实现的接口 上面的代码在运行时创建了一个匿名类的对象`object1`。 **注意**:匿名类在表达式内定义。 因此,在匿名类的末尾使用分号来表示表达式的末尾。 * * * ### 示例 1:扩展类的匿名类 ```java class Polygon { public void display() { System.out.println("Inside the Polygon class"); } } class AnonymousDemo { public void createClass() { // creation of anonymous class extending class Polygon Polygon p1 = new Polygon() { public void display() { System.out.println("Inside an anonymous class."); } }; p1.display(); } } class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); } } ``` **输出** ```java Inside an anonymous class. ``` 在上面的示例中,我们创建了一个`Polygon`类。 它只有一个方法`display()`。 然后,我们创建了一个匿名类,该类扩展了`Polygon`类并覆盖了`display()`方法。 当我们运行程序时,将创建匿名类的对象`p1`。 然后,对象调用匿名类的`display()`方法。 * * * ### 示例 2:实现接口的匿名类 ```java interface Polygon { public void display(); } class AnonymousDemo { public void createClass() { // anonymous class implementing interface Polygon p1 = new Polygon() { public void display() { System.out.println("Inside an anonymous class."); } }; p1.display(); } } class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); } } ``` **输出**: ```java Inside an anonymous class. ``` 在上面的示例中,我们创建了一个实现`Polygon`接口的匿名类。 * * * ## 匿名类的优点 在匿名类中,只要需要就创建对象。 即,创建对象以执行某些特定任务。 例如, ```java Object = new Example() { public void display() { System.out.println("Anonymous class overrides the method display()."); } }; ``` 在这里,当我们需要覆盖`display()`方法时,将动态创建匿名类的对象。 匿名类也有助于我们使代码简洁。