组合就是一个类的对象具有某一个属性,该属性的值是指向另外外一个类的对象
大白话理解:也是一种关系,描述两个对象之间 是什么有什么的关系
将一个对象做为另外一个对象的属性,(既什么有什么)python
组合能够理解成多我的去造一个机器人,有的人造头、有的人造脚、有的人造手、有的人造躯干,你们都完工后,造躯干的人把头、脚、手拼接到本身的躯干上,所以一个机器人便造出来了app
也是为了重用现有代码
何时使用继承:分析两个类的关系,究竟是不是:什么是什么的关系
何时使用组合:若是两个类之间 没有太大的关系,彻底不属于同类
另外组合相比继承,耦合度更低了code
大白话解释: 好比两个不一样的类 入下面列子 一个学生和手机的故事.这2个没有共同点,可是学生有要一个手机的需求,这时候能够把手机类建立出的一个手机对象作为建立学生的对象须要的一个参数, 这样就实现了两个不一样彻底没有共性(不存在任何继承关系)对象实现了二者的交互. 组合就是用来解决类和对象遇到这种问题的这种场合!!!!!
Ps: 同时组合的 耦合性相较与 类的继承的耦合性更低!
二者无关的场景必定要用组合来解决问题!对象
class Phone: def __init__(self,price,kind,color): self.price = price self.kind = kind self.color = color def call(self): print("正在呼叫XXXX;") def send_message(self): print("正在发送短信....") class Student: def __init__(self,name,gender,phone): self.name = name self.gender = gender self.phone = phone def show_info(self): print("name:%s gender:%s" % (self.name,self.gender)) phone = Phone(1000,"apple","red") stu1 = Student("rose","male",phone) stu1.phone.call()