Java 匿名内部类

17 Mar 2025 | 阅读 2 分钟

Java 匿名内部类是没有名称的内部类,并且只创建一个对象。 当创建具有某些“额外”功能(例如重载类或接口的方法)的对象实例时,匿名内部类可能很有用,而无需实际子类化类。

简单来说,Java中没有名称的类称为匿名内部类。 如果必须覆盖类或接口的方法,则应使用它。 Java 匿名内部类可以通过两种方式创建

  1. 类(可以是抽象的或具体的)。
  2. Interface

使用类的Java匿名内部类示例

TestAnonymousInner.java

立即测试

输出

nice fruits

给定代码的内部工作原理

  1. 创建一个类,但其名称由编译器决定,该编译器扩展 Person 类并提供 eat() 方法的实现。
  2. 创建一个匿名类的对象,该对象由 Person 类型的引用变量“p”引用。

编译器生成的内部类

使用接口的Java匿名内部类示例

立即测试

输出

nice fruits

给定代码的内部工作原理

它在此代码背后执行两个主要任务

  1. 创建一个类,但其名称由编译器决定,该编译器实现 Eatable 接口并提供 eat() 方法的实现。
  2. 创建一个匿名类的对象,该对象由 Eatable 类型的引用变量“p”引用。

编译器生成的内部类


下一主题本地内部类