java多态匿名内部类
时间: 2024-05-13 22:12:34 浏览: 125
Java中的多态是指同一种类型的对象,在不同的情况下可以具有不同的表现形式和行为。这种多态性可以通过继承、接口、抽象类等方式来实现。
而匿名内部类是一种没有名字的局部内部类,它一般用于创建那些只需要使用一次的类。通常情况下,匿名内部类都是继承自一个父类或者实现了一个接口,它们可以覆盖父类或接口的方法,以达到特定的功能。
在Java中,可以使用匿名内部类来实现多态。例如,假设我们有一个接口Animal和它的两个实现类Dog和Cat。我们可以使用匿名内部类来创建一个Animal类型的对象,该对象的具体类型可以是Dog或Cat,具体代码如下:
Animal animal = new Animal() {
public void sound() {
System.out.println("汪汪");
}
};
上述代码中,我们创建了一个Animal类型的对象,并覆盖了它的sound()方法。由于我们没有指定具体的类名,这就是一个匿名内部类。在这个例子中,animal对象的具体类型是Dog,因为我们在sound()方法中输出了"汪汪"。如果我们将输出改为"喵喵",则animal对象的具体类型就是Cat。
相关问题
java匿名内部类的练习
Java匿名内部类是没有名字的内部类,它通常用于创建实现某个接口或继承某个类的对象。下面是三种Java匿名内部类的练习:
1.创建一个匿名内部类对象并调用其方法
new Object(){
void method(){
System.out.println("匿名内部类的使用");
}
}.method();
2.通过父类或父接口的变量接受匿名子类/匿名实现类的对象,然后多态调用
abstract class Base{
public abstract void method();}
Base b = new Base(){
@Override
public void method(){
System.out.println("匿名内部类重写父类的抽象方法method");
}
};
b.method();
3.把匿名内部类的匿名对象直接作为另一个方法调用的实参
test(new Base(){
@Override
public void method(){
System.out.println("匿名内部类重写父类的抽象方法method");
}
});
public static void test(Base b){
b.method();
}
相关推荐


















