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