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



![[译] R8 优化:方法的 Outlining 优化-一一网](https://www.proyy.com/wp-content/uploads/2024/10/load.gif )
















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)