Dart 中的多态:
允许将子类类型的指针赋值给父类类型的指针,同一个函数调用会有不同的执行效果。
子类的实例赋值给父类的引用。
多态就是父类定义一个方法不去实现,让继承它的子类去实现,每个子类有不同的表现。
例如:
每个子类都可以定义自己的方法以及属性,但是我们想要做到一种标准就是, 父类作为一种标准,子类所有的表现都应该由父类的标准输出。
// abstract 关键字 表示 该类是一个抽象类。abstract class Animal {eat(); // 抽象方法}// Dog 类import 'Animal.dart';class Dog extends Animal {@overrideeat() {print('我是狗, 我也在吃东西');}// Dog类中的普通方法run(){print('狗在跑...');}}// Cat 类import 'Animal.dart';class Cat extends Animal{@overrideeat() {print('我是猫,我在吃东西');}// Cat 类中的普通方法miao(){print('猫在叫...');}}import 'lib/Animal.dart';import 'lib/Cat.dart';import 'lib/Dog.dart';void main() {Animal cat = new Cat(); // 把 Cat 类的指针赋值给 Animal 类cat.eat();// cat.miao(); // 报错, 因为Animal 作为标准 是没有定义 miao 方法的,这个方法是Cat类的普通方法。Animal dog = new Dog();dog.eat();// dog.run();}
