Java匿名内部类是一种在声明和实例化类的同时,直接定义类的一种特殊方式。使用匿名内部类可以简化代码编写,提高代码的可读性。
使用匿名内部类的步骤如下:
- 将匿名内部类定义为一个接口或者抽象类的实现类,或者直接定义为一个类的子类。
- 在定义匿名内部类的时候,可以直接在方法的参数列表中使用
new
关键字实例化匿名内部类,并重写其方法或提供其属性。 - 如果匿名内部类实现的是接口,可以直接在接口的实现类中实现接口的方法。
- 如果匿名内部类继承的是类,可以直接在类的子类中重写父类的方法。
以下是使用匿名内部类的示例代码:
public class AnonymousInnerClassExample { public static void main(String[] args) { // 使用匿名内部类实现接口 MyInterface myInterface = new MyInterface() { @Override public void method() { System.out.println("实现接口的匿名内部类"); } }; myInterface.method(); // 使用匿名内部类继承类 MyClass myClass = new MyClass() { @Override public void method() { System.out.println("继承类的匿名内部类"); } }; myClass.method(); } // 定义接口 public interface MyInterface { void method(); } // 定义类 public static class MyClass { public void method() { System.out.println("原始类"); } } }
输出结果为:
实现接口的匿名内部类 继承类的匿名内部类
在上述代码中,通过匿名内部类分别实现了MyInterface
接口和MyClass
类,并重写了对应的方法。在main
方法中创建了匿名内部类的实例,并调用了对应的方法。