多态就是父类定义一个方法不去实现,让继承它的子类去实现,每个子类与不同的表现。
abstract class Animal {void eat();}class Dog extends Animal {@overridevoid eat() {// TODO: implement eatprint("子类: 狗 eat 骨头");}void run() => print("子类: 狗 eat 骨头");}class Cat extends Animal {@overridevoid eat() {// TODO: implement eatprint("子类: 猫 eat 鱼🐟");}void run() => print("子类: 狗 eat 骨头");}void main() {Dog d1 = new Dog(); // 类型为子类Dog:可以调用子类的所有方法d1.eat();d1.run();Animal d2 = new Dog(); // 类型为父类Animal:仅能调用 `由子类实现的父类的抽象方法`d2.eat();// d2.run(); // 报错Animal c2 = new Cat(); // 类型为父类Animal:仅能调用 `由子类实现的父类的抽象方法`c2.eat();// c2.run(); // 报错}
