簡介:繼承者含有被繼承者的所有屬性方法或函式。
例如:
class
parent:
defhello
(self):
print("父類方法")
class
child
(parent):
pass
# python有自己的語法標準,當我希望類是空實現的時候。
# 是不符合python的語法標準的,所以不能通過編譯,
# 但我通過pass關鍵字顯式的告訴直譯器,這裡是空實現。
a = parent()
a.hello()
b = child()
b.hello()
child內雖然只有pass,但它包含了parent的所有函式。所以a.hello()和b.hello()執行會顯示相同效果。
效果如下:
a = parent()
a.hello()
父類方法
b = child()
b.hello()
父類方法
如果子類的函式名於父類的函式名衝突,那麼子類的函式會覆蓋父類的同名函式。
例如:
class
parent:
defhello
(self):
print("父類方法")
class
child
(parent):
defhello
(self):
print("子類方法")
b = child()
b.hello()
這裡的b.hello()會顯示子類方法。
b =child()
b.hello()
子類方法
若父子類含有同名函式且想要實現父類的函式,那麼就有兩種方法解決。
1,呼叫未繫結的父類方法
class
parent:
defhello
(self):
print("父類方法")
class
child
(parent):
defhello
(self):
parent.hello(self) #只需要把需要的父類的函式加到子類中就行
print("子類方法")
b = child()
b.hello()
效果如下:
b =child()
b.hello()
父類方法
2,使用super函式
簡介:自動找到基類(父類)的方法並傳入引數。
class
parent:
defhello
(self):
print("父類方法")
class
child
(parent):
defhello
(self):
super().hello() #新增函式super自動尋找基類的函式並傳入引數
print("子類方法")
b = child()
b.hello()
效果如下
b =child()
b.hello()
父類方法
簡介:子類同時繼承多個父類的屬性。
class
a:def
a1(self):
print("我代表a")
class
b:def
b1(self):
print("我代表b")
class
c(a, b):
pass
c = c()
c.a1()
c.b1()
效果如下:
c.a1()
我代表a
c.b1()
我代表b
注:多重函式雖然功能強大,但是容錯率極低。故不到萬不得已,就不要用多重函式! 父子類繼承時屬性說明
父類的所有屬性都會被子類繼承,但是父類的private屬性,子類不能直接拿來用,只有public屬性才能直接拿出來用,子類想使用父類的private屬性,必須先由父類構造公開的get方法 父類現在提供了兩個屬性,乙個是public,乙個是private public class father pub...
Java父子類載入順序
先上桌結論 父類靜態屬性 成員變數 父類靜態 塊 子類靜態屬性 子類靜態 塊 父類非靜態屬性 父類非靜態 塊 父類構造器 子類非靜態屬性 子類非靜態 塊 子類構造器 這麼長怎麼記呀?靜態屬性和 塊,當且僅當該類在程式中第一次被 new 或者第一次被類載入器呼叫時才會觸發 不考慮永久代的 也正是因為上...
子類的繼承
特別注意 如果子類呼叫的是繼承來的方法時,使用的變數則是父類的變數。class person public void tell class student extends person public class extendsdemo4 輸出結果 全國人口為133333人,大約為1億 全國人口為23...