Dart的多态
- 允许将子类类型的指针赋值给父类类型的指针,同一个函数调用会有不同的执行效果。
- 子类的实例赋值给父类的引用。
- 多态就是父类定义一个方法不去实现,让继承他的子类去实现,每个子类有不同的实现。
main(List<String> args) {
var dog = new Dog();
dog
..eat()
..run()
..sleep()
..printInfo();
Animal a = new Dog();
a
..eat()
..run();
// ..sleep(); //sleep()是在子类中创建,父类中不存在,父类无法调用。
Animal c = new Cat();
c
..eat()
..run();
// ..sleep(); //sleep()是在子类中创建,父类中不存在,父类无法调用。
}
abstract class Animal {
eat(); //抽象方法
run(); //抽象方法
printInfo() {
print('抽象类中的普通方法~~');
}
}
class Dog extends Animal {
@override
eat() {
// TODO: implement eat
// throw UnimplementedError();
print('小狗吃饭~~');
}
@override
run() {
// TODO: implement run
// throw UnimplementedError();
print('小狗在跑~~');
}
sleep() {
print('小狗在睡觉~~');
}
}
class Cat extends Animal {
@override
eat() {
// TODO: implement eat
// throw UnimplementedError();
print('小猫吃饭~~');
}
@override
run() {
// TODO: implement run
// throw UnimplementedError();
print('小猫在跑~~');
}
sleep() {
print('小猫在睡觉~~');
}
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END