继承与组合

继承是面向对象编程的基础之一,Python也不例外。Python支持从多继承,也就是一个派生类可以继承多个基类的内容。派生类的定义格式为:

class 派生类(基类1, 基类2, ...):
	pass

派生类可以重载基类的方法,重载只需要保持函数签名一致即可。派生类可以重载任何一级基类的方法。派生类可以使用super()调用基类的方法。具体使用方法可参考以下示例:

def Base:
	def __init__(self):
		pass
		
	def hello(self):
		pass

def Child(Base):
	def __init__(self):
		super().__init__()
		
	def greeting():
		super().hello()

对于类的继承关系来说,可以使用isinstance()函数来判断一个实例的类型,如果对子类的实例去判断其是否是基类的实例,会得到True的结果。

继承就像是把一个原材料加工成成品或者零件,而组合则是将零件组装成更加强大的产品的过程。换句话说,继承是is的识别关系,而组合则是has的包含关系。

使用组合十分容易,只需要将其他的类实例作为组合类的字段或者属性即可。