一.什么是类的组合
组合就是, 一个类或一个类的对象中的某一个属性, 这个属性是另一个类的对象
二.为什么使用组合
用来解决类与类之间代码冗余的问题 (代码重用性)
三.组合与继承的区别
组合和继承都是有效的利用已有类的资源的重要方式, 但二者的概念和使用场景不同
1.继承方式
- 继承是一种 "是" (属于) 的关系, 诗人是人, 歌星是人, 当类之间有很多相同的之处,应该使用继承
# 人类
class Person:
def __init__(self,name,age,sex):
self.name =name
self.age = age
self.sex = sex
def run(self):
print(f"{self.name}跑起来")
# 歌星类
class Start(Person):
def sing(self):
print("唱歌")
# 诗人类
class Poet(Person):
def write(self):
print("写诗")
S1 = Start("毛不易",25,"man")
P1 = Poet("李白",10000,"man")
S1.run() # 毛不易跑起来
P1.run() # 李白跑起来
2.组合方式
- 组合是一种 "有" 的关系, 例:我有工作、有房子, 银行卡有转账、存储功能, 我可以拥有一张银行卡作为我的组件
- 当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好