匿名内部类的对象类型,相当于是当前new的那个类型的子类类型
package com.itheima.d8_innerclass_anonymous;
/**
* 目标:学习匿名内部类的形式和特点
*/
public class Test {
public static void main(String[] args) {
// Animal a = new Tiger(); // 这是多态的形式,开发用的最多
// a.run();
// 现在用匿名内部类 (一个对象就是一个类)
Animal a = new Animal() { // 这里相当于创建了下面的tiger类的对象(只是匿名内部类没有名字)
@Override
public void run() {// Animal是一个抽象父类,不能创建对象,必须重写
System.out.println("匿名老虎跑的快");
}
};
a.run();
}
}
//class Tiger extends Animal{
//
// @Override
// public void run() {
// System.out.println("老虎跑的快");
// }
//}
abstract class Animal{
public abstract void run(); // 创建一个抽象方法要求子类一定要完成
}