匿名内部类是一种没有名字的内部类,只能使用一次。使用匿名内部类必须继承一个父类或实现一个接口。
继承父类的匿名类实例:
abstract class Animal {
public abstract void eat();
}
public class App_Animal {
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal a = new Animal() {
@Override
public void eat() { //匿名类的定义
// TODO Auto-generated method stub
System.out.println("动物吃东西");
}
};
a.eat();
}
}
main()方法的第一条语句中,new后面定义了一个匿名类,从抽象类Animal继承而来,并实现了抽象方法eat()。
实现接口的匿名类实例:
interface IAnimal {
void eat();
}
public class App_IAnimal {
public static void main(String[] args) {
// TODO Auto-generated method stub
IAnimal ia = new IAnimal() {
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("兔子吃草");
}
};
ia.eat();
}
}
注意:匿名类的定义与对象的创建有所不同。