Pythonオブジェクト指向(2)-継承(1)

単一の継承

#所有类默认继承object
class Gun(object):
	def __init__(self,width):
		self.length = 100
		self.width = width
	def shoot(self):
		print('bang')
		
class Wuzi(Gun):
	pass

wuzi = Wuzi(3)

wuzi.shoot()
		

上記の例に示すように、Gunは親クラス、Wuziはサブクラス、WuziはGunを継承し、親クラスのプロパティとメソッドを自動的に継承します。現時点では、Wuziの後の括弧内に1つの親クラスのみが書き込まれます。これは単一継承と呼ばれます。

複数の継承

class Gun1(object):
	def __init__(self):
		self.length = 100
		
	def shoot(self):
		print('bang1')
		
class Gun2(object):
	def __init__(self):
		self.length = 200
		
	def shoot(self):
		print('bang2')
		
class Wuzi(Gun1,Gun2):
	pass

wuzi = Wuzi()

wuzi.shoot()

このとき、出力はbang1です。つまり
、クラスが複数の親クラスを継承する場合、最初の親クラスの同じ名前のメソッドとプロパティがデフォルトで使用さます。

サブクラスは、同じ名前の親クラスのプロパティとメソッドをオーバーライドします

class Gun1(object):
	def __init__(self):
		self.length = 100
		
	def shoot(self):
		print('bang1')
		
class Gun2(object):
	def __init__(self):
		self.length = 200
		
	def shoot(self):
		print('bang2')
		
class Wuzi(Gun1,Gun2):
	def shoot(self):
		print('bang3')

wuzi = Wuzi()

wuzi.shoot()

このときの出力はbang3です。

おすすめ

転載: blog.csdn.net/weixin_48445640/article/details/108813537