请用 C++ 代码实现一个里氏替换原则的示例
时间: 2024-02-24 21:53:50 浏览: 121
以下是一个使用 C++ 实现里氏替换原则的示例:
```cpp
#include<iostream>
using namespace std;
class Animal {
public:
virtual void move() {
cout << "Animal is moving." << endl;
}
};
class Bird : public Animal {
public:
void move() override {
cout << "Bird is flying." << endl;
}
};
class Fish : public Animal {
public:
void move() override {
cout << "Fish is swimming." << endl;
}
};
int main() {
Animal *animal1 = new Animal();
animal1->move();
Animal *animal2 = new Bird();
animal2->move();
Animal *animal3 = new Fish();
animal3->move();
return 0;
}
```
在这个示例中,我们定义了一个 Animal 类作为基类,包含一个虚函数 move(),它的派生类 Bird 和 Fish 分别重写了这个函数。
在主函数中,我们首先创建了一个 Animal 对象 animal1,并调用它的 move() 函数,输出 "Animal is moving."。
接下来,我们创建了一个 Bird 对象 animal2 和一个 Fish 对象 animal3,并分别调用它们的 move() 函数,输出 "Bird is flying." 和 "Fish is swimming."。这证明了子类对象可以替换父类对象,并且不会影响程序正确性。
阅读全文