首先定义一个类Animal,类中定义一个属性color,一个方法play(),创建 一个猫Cat类,继承Animal并重写play方法输出“我是猫,我玩老鼠”,创建一个狗类, 继承Animal并重写play方法输出“我是狗,我玩球”。最后编写测试类TestDemo,通 过多态创建猫,通过多态创建狗,并调用猫对象的play方法,狗对象的play方法。
时间: 2024-03-25 18:36:52 浏览: 23
好的,以下是 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
// Animal 类
class Animal {
protected:
string color;
public:
Animal(string c) : color(c) {}
virtual void play() {
cout << "我是动物,我在玩" << endl;
}
};
// Cat 类,继承 Animal
class Cat : public Animal {
public:
Cat(string c) : Animal(c) {}
void play() {
cout << "我是猫,我玩老鼠" << endl;
}
};
// Dog 类,继承 Animal
class Dog : public Animal {
public:
Dog(string c) : Animal(c) {}
void play() {
cout << "我是狗,我玩球" << endl;
}
};
// TestDemo 类
class TestDemo {
public:
void play(Animal* animal) {
animal->play();
}
};
// 测试类
int main() {
// 创建猫对象,通过多态调用 Cat 的 play 方法
Animal* cat = new Cat("白色");
TestDemo test;
test.play(cat);
// 创建狗对象,通过多态调用 Dog 的 play 方法
Animal* dog = new Dog("黑色");
test.play(dog);
return 0;
}
```
输出结果为:
```
我是猫,我玩老鼠
我是狗,我玩球
```
希望对你有所帮助!
阅读全文