java 匿名内部类

375 阅读1分钟

匿名内部类 从字面上解释就是没有名字的内部类,匿名内部类是基于接口或者抽象类的,跟在new的后面,隐式地实现一个接口或抽象类,根据多态,以其父类命名。匿名内部类实际上就是实现了接口或者即成抽象类,并重写了其抽象方法的类。

使用匿名内部类的好处

  1. 可以使命名变得简洁
  2. 使代码更加紧凑,简洁,封装性比内部类更优

示例

接口:
public interface AnonymousInnerClassInterface {

    public void printInfo();
}
public class InnerClassTest {

    public static void invokeInnerClassMethod(AnonymousInnerClassInterface obj){
        obj.printInfo();
    }

    public static  void testMethod(){
        invokeInnerClassMethod(
                new AnonymousInnerClassInterface() {
                    @Override
                    public void printInfo() {
                        System.out.println("使用匿名内部类的方式进行调用");
                    }
                }
        );
    }
    public static void main(String args[]){
        InnerClassTest.testMethod();
    }
}
/*
*匿名内部类测试
*/
public class InnerClassTest {

    public static void invokeInnerClassMethod(AnonymousInnerClassInterface obj){
        obj.printInfo();
    }

    public static  void testMethod(){
        invokeInnerClassMethod(
        // new 的方式创建内部类并实现其抽象方法
                new AnonymousInnerClassInterface() {
                    @Override
                    public void printInfo() {
                        System.out.println("使用匿名内部类的方式进行调用");
                    }
                }
        );
    }
    public static void main(String args[]){
        InnerClassTest.testMethod();
    }
}

输出结果: