继承和组合都可以实现代码复用的功能
继承适合完成"is-a"的问题,例如小狗是动物
组合适合完成"has-a"的问题,例如手机有CPU
# 继承
class Animal:
def __init__(self, name, age):
self.name = name
self.__age = age
def say_name(self):
print("我叫:{0}".format(self.name))
class Chicken(Animal):
pass
ik = Chicken("ik",1)
ik.say_name()
执行结果
# 组合
class CPU:
def say_cpu(self):
print("CPU,CPU,CPU")
class Phone:
def __init__(self, cpu):
self.cpu = cpu
phone = Phone(CPU())
phone.cpu.say_cpu()
执行结果