面试题答案
一键面试- 设计思路:
- 在Python中,一个类可以继承多个抽象类来获得多种能力。对于可能出现的方法冲突,需要确保不同抽象类中的方法命名尽量清晰,避免命名冲突。如果出现冲突,在子类中重写方法时要根据具体需求明确实现逻辑。
- 代码示例:
from abc import ABC, abstractmethod
class Drawable(ABC):
@abstractmethod
def draw(self):
pass
class Rotatable(ABC):
@abstractmethod
def rotate(self):
pass
class ComplexObject(Drawable, Rotatable):
def draw(self):
print("ComplexObject is being drawn.")
def rotate(self):
print("ComplexObject is being rotated.")
# 测试
obj = ComplexObject()
obj.draw()
obj.rotate()
上述代码中,ComplexObject
类继承了Drawable
和Rotatable
两个抽象类,并实现了它们的抽象方法。在实际应用中,如果不同抽象类中有同名方法,需要在ComplexObject
类中仔细实现以满足业务需求。