類的繼承:一個類繼承另一個類,自動擁有這個類的屬性和方法,類似于包含與被包含的關系。被繼承的類稱為父類--子類則是繼承父類的類。一個父類可以有多個子類;一個子類可以有多個父類(多繼承)
問題
創建子類時,要是直接進行調用,系統會報錯,必須對子類進行實例化。那要如何對子類進行實例化呢?
方法
首先先創造父類,將其屬性定義,然后創建多個子類(格式子類(父類)),接著對子類實例化,在對子類實例化時也要將屬性補充完整。
代碼清單
錯誤示范:
#父類:將所有類的公共屬性和方法進行統一定義
class Dad():
def init (self,greet,demandmoney):
print('老爸我沒生活費了!')
self.greet=greet
self.demandmoney=demandmoney
def f(self):
print('{}今天你很帥,{}'.format(self.greet,self.demandmoney))
def ff(ff):
print('我沒錢耍朋友了')
#子類(父類):可繼承父類所有屬性
class Girl(Dad):
pass #mean do nothing 但是仍然擁有父類的屬性和方法
class Son(Dad):
pass #mean do nothing
a=Girl()
a.ff()
a.f()
運行結果:Traceback (most recent call last):
File "D:/123456/456.py", line 16, in
a=Girl()
TypeError: Dad. init () missing 2 required positional arguments: 'greet' and 'demandmoney'
正確代碼:
#父類:將所有類的公共屬性和方法進行統一定義
class Dad():
def init (self,greet,demandmoney):
print('老爸我沒生活費了!')
self.greet=greet
self.demandmoney=demandmoney
def f(self):
print('{}今天你很帥,{}'.format(self.greet,self.demandmoney))
def ff(ff):
print('我沒錢耍朋友了')
#子類(父類):可繼承父類所有屬性
class Girl(Dad):
pass #mean do nothing 但是仍然擁有父類的屬性和方法
class Son(Dad):
def son(self):#子類可以擁有自己的屬性與方法
print('老爸我想多一點生活費')
#a=Girl()
#a.ff()
#a.f()
#創建對象(將子類進行實類化)
a=Girl('老爸早上好',1500)
a.ff()
a.f()
b=Son('老爸早上好',2000)
b.ff()
b.f()
b.son()
打印結果 :老爸我沒生活費了!
我沒錢耍朋友了
老爸早上好今天你很帥,1500
老爸我沒生活費了!
我沒錢耍朋友了
老爸早上好今天你很帥,2000
老爸我想多一點生活費
結語
通過此次實驗,我們更加了解了類的繼承,以及要對子類實例化,對其實例化時也要將屬性補充完整。
-
編程
+關注
關注
88文章
3637瀏覽量
93983 -
繼承
+關注
關注
0文章
10瀏覽量
2736
發布評論請先 登錄
相關推薦
評論