示例
class Animal {
void makeSound() {
print('Animal makes a sound');
}
}
class Dog extends Animal {
@override
void makeSound() {
print('Dog barks');
}
}
class Cat extends Animal {
@override
void makeSound() {
print('Cat meows');
}
}
void main() {
Animal dog = Dog();
Animal cat = Cat();
dog.makeSound(); // Output: Dog barks
cat.makeSound(); // Output: Cat meows
}在上面的示例中,我们定义了一个基类Animal和两个子类Dog和Cat。每个子类都重写了基类的makeSound方法以实现自己特有的声音行为。在main函数中,我们创建了一个指向Dog对象的Animal引用和一个指向Cat对象的Animal引用,并调用它们各自的makeSound方法。由于Dart支持多态,程序会根据实际对象类型调用正确的方法,输出相应的声音。