2.宠物类 人类喜欢养宠物猫咪和狗狗,很喜欢给它们取可爱的名字; 宠物有不同的品种、颜色、年龄;它们很喜欢吃饭和睡觉。 要求:使用封装、继承、抽象类等知识点,编程实现。
时间: 2023-07-10 07:14:04 浏览: 86
好的,我可以为您实现一个简单的宠物类程序。
首先,我们定义一个抽象类Pet,作为所有宠物的基类:
```python
from abc import ABC, abstractmethod
class Pet(ABC):
def __init__(self, name, age, color):
self.name = name
self.age = age
self.color = color
@abstractmethod
def eat(self):
pass
@abstractmethod
def sleep(self):
pass
```
这个类有一个构造函数,用于保存宠物的基本信息,同时定义了两个抽象方法eat和sleep,用于描述宠物的行为。
接下来,我们可以定义猫和狗的类Cat和Dog,它们都是Pet的子类,继承了基类的属性和方法:
```python
class Cat(Pet):
def __init__(self, name, age, color, breed):
super().__init__(name, age, color)
self.breed = breed
def eat(self):
print(f"{self.name} is eating fish.")
def sleep(self):
print(f"{self.name} is taking a nap.")
class Dog(Pet):
def __init__(self, name, age, color, breed):
super().__init__(name, age, color)
self.breed = breed
def eat(self):
print(f"{self.name} is eating meat.")
def sleep(self):
print(f"{self.name} is sleeping in the doghouse.")
```
这两个类都重写了基类中的eat和sleep方法,用具体的行为描述了猫和狗的习惯。
最后,我们可以创建几只宠物,测试它们的行为:
```python
cat1 = Cat("Kitty", 2, "white", "Persian")
dog1 = Dog("Buddy", 3, "brown", "Golden Retriever")
cat1.eat()
dog1.sleep()
```
这个程序会输出:
```
Kitty is eating fish.
Buddy is sleeping in the doghouse.
```
这样就完成了一个简单的宠物类程序,它使用了封装、继承和抽象类等知识点,实现了基本的面向对象编程思想。
阅读全文