举个例子:门和报警器,将门设为抽象类, 行为:关门 开门 报警 门 -----盼盼门 美心 ..... 不是所有的品牌门 都带 报警 比如 盼盼门 关门 开门 报警 美心门 关门 开门没有 报警 门--抽象类
时间: 2023-05-12 07:07:25 浏览: 199
这是一个面向对象编程的问题,门被设为抽象类,具有关门、开门和报警的行为,而不是所有品牌的门都带有报警功能。这意味着,门的子类可以继承门的行为,但可以根据需要添加或删除特定品牌的功能。以下是一个可能的实现:
```python
from abc import ABC, abstractmethod
class Door(ABC):
@abstractmethod
def open(self):
pass
@abstractmethod
def close(self):
pass
def alarm(self):
print("Alarm!")
class PanPanDoor(Door):
def open(self):
print("PanPan door is opening.")
def close(self):
print("PanPan door is closing.")
def alarm(self):
print("PanPan door is alarming.")
class MeiXinDoor(Door):
def open(self):
print("MeiXin door is opening.")
def close(self):
print("MeiXin door is closing.")
# Usage
panpan_door = PanPanDoor()
meixin_door = MeiXinDoor()
panpan_door.open()
panpan_door.alarm()
meixin_door.close()
```
这个示例代码定义了一个 Door 抽象类,其中 open() 和 close() 方法是必需的,而 alarm() 方法是可选的。PanPanDoor 和 MeiXinDoor 是 Door 的子类,它们分别实现了 open() 和 close() 方法,并覆盖了 alarm() 方法。在使用时,我们可以创建 PanPanDoor 和 MeiXinDoor 的实例,并调用它们的方法。
阅读全文