物件導向三大特性 繼承4

2021-08-21 15:46:52 字數 1134 閱讀 4748

資源的累加

概念:在乙個類的基礎上,增加一些額外的資源。

子類相比於父類,多一些自己特有的資源。

在覆蓋的方法基礎上,新增內容。

方案1:通過呼叫例項的init方法。但這樣會產生重複呼叫這一現象

b.__init__(self)

c.__init__(self)

#-------------------------------重複呼叫-------------------------------

class d(object):

def __init__(self):

print("d")

class b(d):

def __init__(self):

d.__init__(self)

print("b")

class c(d):

def __init__(self):

d.__init__(self)

print("c")

class a(b, c):

def __init__(self):

b.__init__(self)

c.__init__(self)

print("a")

# b()

# c()

a()

方案2:在低優先順序類的方法中,通過「super」呼叫高優先順序類的方法。

概念:是乙個類,只能在新式類中使用有效。

問題(參看下面的語法原理):

1.沿著誰的mro鏈條:引數2

3.如何對應類方法,靜態方法以及例項方法的傳參問題:使用引數2進行呼叫。

語法原理:

格式:super(引數1[, 引數2])

工作原理:def super(cls, inst):

mro = inst.__class__.mro()

return mro[mro.index(cls) + 1]

常用具體語法形式:

python2.2+當中

super(type, object) -> bound super object;

super(type, type2) -> bound super object;

python3+當中

super()

java物件導向三大特性 繼承

在原有類的基礎上建立 派生 新的類。原有的類被稱為父類 基類或者超類 新類被稱為子類,子類可以繼承父類的成員和方法 不可以選擇性繼承 也可以定義新的成員和方法。優點 節省 量和開發周期 降低研發費用 public class pet public void sayhello public strin...

物件導向三大特性 繼承3

資源的覆蓋 包括 屬性的覆蓋,方法重寫 原理 在mro的資源檢索鏈中,優先順序比較高的類寫了乙個和優先順序比較低的類一樣的乙個資源 屬性或方法 到時候,再去獲取相關資源,就會優先選擇優先順序比較高的資源。而摒棄優先順序比較低的資源。造成 覆蓋 的假象。注意事項 當呼叫優先順序比較高的資源時,注意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 ...