除了继承,组合也可以实现代码的复用。组合的核心就是将父类对象作为子类的属性。
is-a关系,可以使用继承。从而实现子类拥有父类的方法和属性。
has-a关系,可以使用组合。也能实现一个类拥有另一个类的方法和属性。
class MobilePhone:
def __init__(self,cpu,screen):
self.cpu = cpu
self.screen = screen
class CPU:
def calculate(self):
print("Calculate")
class Screen:
def show(self):
print("Show")
c = CPU()
s = Screen()
m = MobilePhone(c,s)
m.cpu.calculate()
m.screen.show()