Python 父子類繼承筆記

2021-08-02 03:08:27 字數 2174 閱讀 1358

簡介:繼承者含有被繼承者的所有屬性方法或函式。

例如:

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...