python编写程序,定义一个Dog类,它有一个方法work(),代表其工作,工作内容为:“正在受训”,定义以下4个新类: (1)定义一个继承Dog类的军犬类ArmDog,军犬的work()方法输出“追击敌人”。 (2)定义一个继承Dog类的未受训的狗类UntrainedDog,不需要覆盖父类方法。 (3)定义一个继承Dog类的缉毒犬类DrugDog,缉毒犬的work()方法输出“搜寻毒品”。 (4)定义一个Person类,该类有一个workWithDog()方法,该方法会根据与其合作的狗的种类不同,完成不同的工作。例如:如果为该方法传入“军犬”,则向控制台输出:追击敌人;如果传入“缉毒犬”,则向控制台输入“搜寻毒品”;如果传入“未受训的狗”,则输出正在受训。 编写测试代码:测试编写的各个类的正确性。
时间: 2024-03-29 14:38:49 浏览: 61
以下是代码实现:
```python
class Dog:
def work(self):
print("正在受训")
class ArmDog(Dog):
def work(self):
print("追击敌人")
class UntrainedDog(Dog):
pass
class DrugDog(Dog):
def work(self):
print("搜寻毒品")
class Person:
def workWithDog(self, dog):
dog.work()
# 测试代码
person = Person()
arm_dog = ArmDog()
person.workWithDog(arm_dog)
untrained_dog = UntrainedDog()
person.workWithDog(untrained_dog)
drug_dog = DrugDog()
person.workWithDog(drug_dog)
```
输出结果为:
```
追击敌人
正在受训
搜寻毒品
```
可以看到,代码实现了要求的功能,通过继承实现了不同种类的狗类,并覆盖了父类的work()方法。同时,定义了Person类,实现了根据不同种类的狗类完成不同工作的方法workWithDog()。
阅读全文