编写程序,定义一个Dog类,它有一个方法work(),代表其工作,工作内容为:“正在受训”,定义以下4个新类: (1)定义一个继承Dog类的军犬类ArmDog,军犬的work()方法输出“追击敌人”。 (2)定义一个继承Dog类的未受训的狗类UntrainedDog,不需要覆盖父类方法。 (3)定义一个继承Dog类的缉毒犬类DrugDog,缉毒犬的work()方法输出“搜寻毒品”。 (4)定义一个Person类,该类有一个workWithDog()方法,该方法会根据与其合作的狗的种类不同,完成不同的工作。例如:如果为该方法传入“军犬”,则向控制台输出:追击敌人;如果传入“缉毒犬”,则向控制台输入“搜寻毒品”;如果传入“未受训的狗”,则输出正在受训。 编写测试代码:测试编写的各个类的正确性。
时间: 2024-04-01 22:38:44 浏览: 30
下面是实现这个问题的Python代码:
```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()
# 测试代码
arm_dog = ArmDog()
untrained_dog = UntrainedDog()
drug_dog = DrugDog()
person = Person()
person.workWithDog(arm_dog) # 输出“追击敌人”
person.workWithDog(untrained_dog) # 输出“正在受训”
person.workWithDog(drug_dog) # 输出“搜寻毒品”
```
运行输出:
```
追击敌人
正在受训
搜寻毒品
```
相关问题
python编写程序,定义一个Dog类,它有一个方法work(),代表其工作,工作内容为:“正在受训”,定义以下4个新类: (1)定义一个继承Dog类的军犬类ArmDog,军犬的work()方法输出“追击敌人”。 (2)定义一个继承Dog类的未受训的狗类UntrainedDog,不需要覆盖父类方法。 (3)定义一个继承Dog类的缉毒犬类DrugDog,缉毒犬的work()方法输出“搜寻毒品”。 (4)定义一个Person类,该类有一个workWithDog()方法,该方法会根据与其合作的狗的种类不同,完成不同的工作。例如:如果为该方法传入“军犬”,则向控制台输出:追击敌人;如果传入“缉毒犬”,则向控制台输入“搜寻毒品”;如果传入“未受训的狗”,则输出正在受训。 编写测试代码:测试编写的各个类的正确性。
以下是代码实现:
```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()。
设计一个Dog类,有名字、颜色、年龄等属性,定义构造方法来初始化类的这些属性,定义方法输出Dog信息,编写应用程序使用Dog类
好的,以下是实现了您要求的Dog类的Python代码示例:
```python
class Dog:
def __init__(self, name, color, age):
self.name = name
self.color = color
self.age = age
def get_info(self):
print("Name: ", self.name)
print("Color: ", self.color)
print("Age: ", self.age)
# 示例应用程序
if __name__ == '__main__':
my_dog = Dog("Snoopy", "white", 3)
my_dog.get_info()
```
在上面的代码中,我们定义了一个名为`Dog`的类,它有三个属性:`name`、`color`和`age`,这些属性通过类的构造方法进行初始化。我们还定义了一个`get_info`方法,该方法用于输出`Dog`对象的信息。最后,我们编写了一个简单的应用程序,创建了一个`Dog`对象,并输出它的信息。
当您运行该程序时,您将看到以下输出:
```
Name: Snoopy
Color: white
Age: 3
```
这表明我们已经成功地创建了一个`Dog`对象,并成功地输出了它的信息。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)