本帖最后由 江夷 于 2014-6-17 22:20 编辑
//接口类
interface Animal{
//(吃的方法)抽象方法
public abstract void eat();
}
//(类实现接口)狗实现动物
class Dog implements Animal{
//重写吃的方法
public void eat(){
System.out.println("吃肉");
}
}
//测试类
class InnerTest8{
public static void main(String[] args){
//Animal d = new Dog(); 这是多态创建dog对象的方式,
//调用method方法 method(
//匿名对象
new Animal(){
//重写吃的方法
public void eat(){
System.out.println("吃肉");
}
}
);
//调用method方法
method(
//匿名对象
new Animal(){
//重写吃的方法
public void eat(){
System.out.println("吃<。)#)))≦");
}
}
);
}
//创建函数(method方法)
public static void method(Animal a){
//吃的方法
a.eat();
}
}
可以将匿名内部类和内部类两个区分来看,
其实就是因为在测试类中需要使用接口方法,需要有类实现接口才能重写方法,所以就创建了一个匿名对象, 这个匿名对象是以Animal的多态的匿名对象形式创建的,然让这个匿名对象来重写接口的eat方法,但因为没有实体对象,所以将这个整个匿名对象以及里面的重写方法用一个单独的method方法装起来,这就是完整的匿名内部类
|