定义一个狗狗类,添加昵称,年龄和品种。 定义一个猫猫类,添加昵称,年龄和颜色。 1、使用封装,实现类的测试。 2、使用继承,提取公共的属性和方法到父类,实现类的测试。
时间: 2024-03-05 12:48:04 浏览: 117
使用Animal和Mammal两个类来说明一般动物和哺乳动物的继承关系。C#代码[定义].pdf
5星 · 资源好评率100%
好的,我来回答你的问题。
首先,以下是使用封装的狗狗类和猫猫类的实现:
```python
class Dog:
def __init__(self, nickname, age, breed):
self.__nickname = nickname
self.__age = age
self.__breed = breed
def get_nickname(self):
return self.__nickname
def set_nickname(self, nickname):
self.__nickname = nickname
def get_age(self):
return self.__age
def set_age(self, age):
self.__age = age
def get_breed(self):
return self.__breed
def set_breed(self, breed):
self.__breed = breed
class Cat:
def __init__(self, nickname, age, color):
self.__nickname = nickname
self.__age = age
self.__color = color
def get_nickname(self):
return self.__nickname
def set_nickname(self, nickname):
self.__nickname = nickname
def get_age(self):
return self.__age
def set_age(self, age):
self.__age = age
def get_color(self):
return self.__color
def set_color(self, color):
self.__color = color
```
以上代码中,我们使用了封装来保护类的属性,同时提供了 getter 和 setter 方法来获取和修改属性的值。接下来,我们可以使用以下代码来测试狗狗类和猫猫类:
```python
# 测试狗狗类
dog = Dog("旺财", 3, "拉布拉多")
print(dog.get_nickname())
print(dog.get_age())
print(dog.get_breed())
dog.set_nickname("小黑")
dog.set_age(4)
dog.set_breed("哈士奇")
print(dog.get_nickname())
print(dog.get_age())
print(dog.get_breed())
# 测试猫猫类
cat = Cat("咪咪", 2, "白色")
print(cat.get_nickname())
print(cat.get_age())
print(cat.get_color())
cat.set_nickname("花花")
cat.set_age(3)
cat.set_color("黑色")
print(cat.get_nickname())
print(cat.get_age())
print(cat.get_color())
```
接下来,我们可以使用继承,将狗狗类和猫猫类中的相同属性和方法提取到父类中,实现如下:
```python
class Animal:
def __init__(self, nickname, age):
self.__nickname = nickname
self.__age = age
def get_nickname(self):
return self.__nickname
def set_nickname(self, nickname):
self.__nickname = nickname
def get_age(self):
return self.__age
def set_age(self, age):
self.__age = age
class Dog(Animal):
def __init__(self, nickname, age, breed):
super().__init__(nickname, age)
self.__breed = breed
def get_breed(self):
return self.__breed
def set_breed(self, breed):
self.__breed = breed
class Cat(Animal):
def __init__(self, nickname, age, color):
super().__init__(nickname, age)
self.__color = color
def get_color(self):
return self.__color
def set_color(self, color):
self.__color = color
```
以上代码中,我们创建了一个父类 Animal,包含昵称和年龄属性,并提供了 getter 和 setter 方法。在狗狗类和猫猫类中,我们使用 super() 函数调用父类的构造函数,并添加了 breed 和 color 属性,并提供了 getter 和 setter 方法。接下来,我们可以使用以下代码来测试狗狗类和猫猫类:
```python
# 测试狗狗类
dog = Dog("旺财", 3, "拉布拉多")
print(dog.get_nickname())
print(dog.get_age())
print(dog.get_breed())
dog.set_nickname("小黑")
dog.set_age(4)
dog.set_breed("哈士奇")
print(dog.get_nickname())
print(dog.get_age())
print(dog.get_breed())
# 测试猫猫类
cat = Cat("咪咪", 2, "白色")
print(cat.get_nickname())
print(cat.get_age())
print(cat.get_color())
cat.set_nickname("花花")
cat.set_age(3)
cat.set_color("黑色")
print(cat.get_nickname())
print(cat.get_age())
print(cat.get_color())
```
以上就是定义狗狗类和猫猫类,并使用封装和继承实现的示例。希望可以帮助到你!
阅读全文