派生是指子類可以有自己的特有屬性,示例**如下:
1class
hero:
2def
__init__
(self, nick_name, life_value, aggresivity):
3 self.nick_name =nick_name
4 self.life_value =life_value
5 self .aggresivity =aggresivity67
defattack(self, enemy):
8 enemy.life_value -=self.aggresivity910
11class
garen(hero):
12 camp = '
demacia'13
1415
class
riven(hero):
16 camp = '
noxus'17
1819 g1 = garen('
草叢倫', 100, 30)
20print(g1.camp)
結果為:
demacia
從結果可以看出,能夠訪問g1的特有屬性camp
派生屬性並不影響正常**執行:
1class
hero:
2def
__init__
(self, nick_name, life_value, aggresivity):
3 self.nick_name =nick_name
4 self.life_value =life_value
5 self .aggresivity =aggresivity67
defattack(self, enemy):
8 enemy.life_value -=self.aggresivity910
11class
garen(hero):
12 camp = '
demacia'13
1415
class
riven(hero):
16 camp = '
noxus'17
1819 g1 = garen('
草叢倫', 100, 30)
20 r1 = riven('
銳雯雯', 80, 50)
21g1.attack(r1)
22print
(r1.life_value)
2324
結果為:
25 50
在garen類中新增乙個attack函式,會發生什麼變化
1class
hero:
2def
__init__
(self, nick_name, life_value, aggresivity):
3 self.nick_name =nick_name
4 self.life_value =life_value
5 self .aggresivity =aggresivity67
defattack(self, enemy):
8 enemy.life_value -=self.aggresivity910
11class
garen(hero):
12 camp = '
demacia'13
14def
attack(self, enemy):
15print('
from garen class')
1617
18class
riven(hero):
19 camp = '
noxus'20
2122 g1 = garen('
草叢倫', 100, 30)
23 r1 = riven('
銳雯雯', 80, 50)
24g1.attack(r1)25#
print(r1.life_value)
2627
結果為:
28from garen class
以上結果說明,屬性的查詢順序為物件自身,所屬類中依次去查詢
python物件導向程式設計 繼承與派生
一.什麼是繼承 繼承是一種新建類的方式,新建的類稱為子類,被繼承的類稱為父類 繼承的特性是 子類會遺傳父類的屬性 強調 繼承是類與類之間的關係 二.為什麼用繼承 因為繼承的好處就是可以減少 的冗餘 三.如何繼承 在python中支援乙個類同時繼承多個父類 在python3中 如果乙個類沒有繼承任何類...
物件導向2 繼承與派生
1 繼承的概念 引入 先定義了乙個類a,然後又想新建立另外乙個類b,但是類b的大部分內容與類a是相同的,我們不可能從新再寫乙個類b,這就用到了類的繼承的概念。通過繼承的方式新建類b,讓b繼承a,b會 遺傳 a的所有屬性 資料屬性和函式屬性 概念 繼承是指類與類之間的關係,是一種建立新類的方式,新建的...
c 物件導向繼承與派生
概念 在 c 中,當定義乙個新的類 b 時,如果發現類 b 擁有某個已寫好的類 a 的全部特點,此外還有類 a 沒有的特點,那麼就不必從頭重寫類 b,而是可以把類 a 作為乙個 基類 也稱 父類 把類 b 寫為基類 a 的乙個 派生類 也稱 子類 這樣,就可以說從類 a 派生 出了類 b,也可以說類...