類的繼承:一個(gè)類繼承另一個(gè)類,自動(dòng)擁有這個(gè)類的屬性和方法,類似于包含與被包含的關(guān)系。被繼承的類稱為父類--子類則是繼承父類的類。一個(gè)父類可以有多個(gè)子類;一個(gè)子類可以有多個(gè)父類(多繼承)
問(wèn)題
創(chuàng)建子類時(shí),要是直接進(jìn)行調(diào)用,系統(tǒng)會(huì)報(bào)錯(cuò),必須對(duì)子類進(jìn)行實(shí)例化。那要如何對(duì)子類進(jìn)行實(shí)例化呢?
方法
首先先創(chuàng)造父類,將其屬性定義,然后創(chuàng)建多個(gè)子類(格式子類(父類)),接著對(duì)子類實(shí)例化,在對(duì)子類實(shí)例化時(shí)也要將屬性補(bǔ)充完整。
代碼清單
錯(cuò)誤示范:
#父類:將所有類的公共屬性和方法進(jìn)行統(tǒng)一定義
class Dad():
def init (self,greet,demandmoney):
print('老爸我沒(méi)生活費(fèi)了!')
self.greet=greet
self.demandmoney=demandmoney
def f(self):
print('{}今天你很帥,{}'.format(self.greet,self.demandmoney))
def ff(ff):
print('我沒(méi)錢(qián)耍朋友了')
#子類(父類):可繼承父類所有屬性
class Girl(Dad):
pass #mean do nothing 但是仍然擁有父類的屬性和方法
class Son(Dad):
pass #mean do nothing
a=Girl()
a.ff()
a.f()
運(yùn)行結(jié)果: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'
正確代碼:
#父類:將所有類的公共屬性和方法進(jìn)行統(tǒng)一定義
class Dad():
def init (self,greet,demandmoney):
print('老爸我沒(méi)生活費(fèi)了!')
self.greet=greet
self.demandmoney=demandmoney
def f(self):
print('{}今天你很帥,{}'.format(self.greet,self.demandmoney))
def ff(ff):
print('我沒(méi)錢(qián)耍朋友了')
#子類(父類):可繼承父類所有屬性
class Girl(Dad):
pass #mean do nothing 但是仍然擁有父類的屬性和方法
class Son(Dad):
def son(self):#子類可以擁有自己的屬性與方法
print('老爸我想多一點(diǎn)生活費(fèi)')
#a=Girl()
#a.ff()
#a.f()
#創(chuàng)建對(duì)象(將子類進(jìn)行實(shí)類化)
a=Girl('老爸早上好',1500)
a.ff()
a.f()
b=Son('老爸早上好',2000)
b.ff()
b.f()
b.son()
打印結(jié)果 :老爸我沒(méi)生活費(fèi)了!
我沒(méi)錢(qián)耍朋友了
老爸早上好今天你很帥,1500
老爸我沒(méi)生活費(fèi)了!
我沒(méi)錢(qián)耍朋友了
老爸早上好今天你很帥,2000
老爸我想多一點(diǎn)生活費(fèi)
結(jié)語(yǔ)
通過(guò)此次實(shí)驗(yàn),我們更加了解了類的繼承,以及要對(duì)子類實(shí)例化,對(duì)其實(shí)例化時(shí)也要將屬性補(bǔ)充完整。
-
編程
+關(guān)注
關(guān)注
88文章
3649瀏覽量
94356 -
繼承
+關(guān)注
關(guān)注
0文章
10瀏覽量
2748
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
關(guān)于Java繼承的問(wèn)題
Python多重繼承使用方法
什么是繼承?
Java類的繼承與派生

Java繼承怎么寫(xiě)

構(gòu)造函數(shù)(類)繼承的方式與實(shí)驗(yàn)
Android溫習(xí)之路之繼承

評(píng)論