資源的覆蓋:
包括:屬性的覆蓋,方法重寫
原理:在mro的資源檢索鏈中,優先順序比較高的類寫了乙個和優先順序比較低的類一樣的乙個資源(屬性或方法)。到時候,再去獲取相關資源,就會優先選擇優先順序比較高的資源。而摒棄優先順序比較低的資源。造成「覆蓋」的假象。
注意事項:當呼叫優先順序比較高的資源時,注意self的變化。
# 資源的覆蓋:class d(object):
age = "d"
pass
class c(d):
age = "c"
def test(self):
print("c")
pass
class b(d):
age = "b"
def test(self):
print("b")
pass
class a(b, c):
age = "a"
pass
# 檢視a的mro順序
import inspect
print(inspect.getmro(a))
print(a.__mro__)
print(a.mro())
print(a.age)
print(a().test())
java物件導向三大特性 繼承
在原有類的基礎上建立 派生 新的類。原有的類被稱為父類 基類或者超類 新類被稱為子類,子類可以繼承父類的成員和方法 不可以選擇性繼承 也可以定義新的成員和方法。優點 節省 量和開發周期 降低研發費用 public class pet public void sayhello public strin...
物件導向三大特性 繼承4
資源的累加 概念 在乙個類的基礎上,增加一些額外的資源。子類相比於父類,多一些自己特有的資源。在覆蓋的方法基礎上,新增內容。方案1 通過呼叫例項的init方法。但這樣會產生重複呼叫這一現象 b.init self c.init self 重複呼叫 class d object def init se...
物件導向三大特性之繼承
1 author kelvin2 date 2019 1 16 18 5734 class father 5 money 100067 def init self,name 8print 父類的init方法.9 self.name name 1011 defteach self 12print s ...