易百教程

176、什么是匿名内部类?

匿名内部类是在表达式中自动声明和实例化的类。不能对它们应用不同的访问修饰符。 匿名类不能是静态的,也不能定义任何静态字段、方法或类。 换句话说,它是一个没有名称的类,并且只能有一个由其定义创建的对象。 考虑以下示例:


abstract class Person {
    abstract void eat();
}

class TestAnonymousInner {

    public static void main(String args[]) {
        Person p = new Person() {
            void eat() {
                System.out.println("nice fruits");
            }
        };
        p.eat();
    }
}

运行结果:

nice fruits

考虑以下使用接口的匿名类的工作示例:


interface Eatable {

    void eat();
}

class TestAnnonymousInner1 {

    public static void main(String args[]) {
        Eatable e = new Eatable() {
            public void eat() {
                System.out.println("nice fruits");
            }
        };
        e.eat();
    }
}

运行结果:

nice fruits