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