Dart 中的多态:

    允许将子类类型的指针赋值给父类类型的指针,同一个函数调用会有不同的执行效果。

    子类的实例赋值给父类的引用。

    多态就是父类定义一个方法不去实现,让继承它的子类去实现,每个子类有不同的表现。

    例如:

    每个子类都可以定义自己的方法以及属性,但是我们想要做到一种标准就是, 父类作为一种标准,子类所有的表现都应该由父类的标准输出。

    1. // abstract 关键字 表示 该类是一个抽象类。
    2. abstract class Animal {
    3. eat(); // 抽象方法
    4. }
    5. // Dog 类
    6. import 'Animal.dart';
    7. class Dog extends Animal {
    8. @override
    9. eat() {
    10. print('我是狗, 我也在吃东西');
    11. }
    12. // Dog类中的普通方法
    13. run(){
    14. print('狗在跑...');
    15. }
    16. }
    17. // Cat 类
    18. import 'Animal.dart';
    19. class Cat extends Animal{
    20. @override
    21. eat() {
    22. print('我是猫,我在吃东西');
    23. }
    24. // Cat 类中的普通方法
    25. miao(){
    26. print('猫在叫...');
    27. }
    28. }
    29. import 'lib/Animal.dart';
    30. import 'lib/Cat.dart';
    31. import 'lib/Dog.dart';
    32. void main() {
    33. Animal cat = new Cat(); // 把 Cat 类的指针赋值给 Animal 类
    34. cat.eat();
    35. // cat.miao(); // 报错, 因为Animal 作为标准 是没有定义 miao 方法的,这个方法是Cat类的普通方法。
    36. Animal dog = new Dog();
    37. dog.eat();
    38. // dog.run();
    39. }