匿名内部类的对象类型,相当于是当前new的那个类型的子类类型
    image.png
    image.png
    image.png

    1. package com.itheima.d8_innerclass_anonymous;
    2. /**
    3. * 目标:学习匿名内部类的形式和特点
    4. */
    5. public class Test {
    6. public static void main(String[] args) {
    7. // Animal a = new Tiger(); // 这是多态的形式,开发用的最多
    8. // a.run();
    9. // 现在用匿名内部类 (一个对象就是一个类)
    10. Animal a = new Animal() { // 这里相当于创建了下面的tiger类的对象(只是匿名内部类没有名字)
    11. @Override
    12. public void run() {// Animal是一个抽象父类,不能创建对象,必须重写
    13. System.out.println("匿名老虎跑的快");
    14. }
    15. };
    16. a.run();
    17. }
    18. }
    19. //class Tiger extends Animal{
    20. //
    21. // @Override
    22. // public void run() {
    23. // System.out.println("老虎跑的快");
    24. // }
    25. //}
    26. abstract class Animal{
    27. public abstract void run(); // 创建一个抽象方法要求子类一定要完成
    28. }