參考
class
father()
:def
__init__
(self)
:print
("這是父類的"
)class
son(father)
:def
__init__
(self)
: father.__init__(self)
print
("這是子類的"
)son = son(
)這是父類的
這是子類的
注: 在子類中呼叫父類方法時,要傳入self這一引數,相當於把類的例項化物件傳入,不然會報錯。
通過這樣呼叫父類,我們就實現了既可以呼叫子類方法,也可以呼叫父類方法。如果不這樣呼叫的話,當子類繼承乙個父類的時候,使用__init__方法的話,子類就會覆蓋父類,我們就無法訪問父類的__init__方法。
class
father()
:# father為父類
def__init__
(self)
:print
("這是父類的"
)class
son(father)
:# father為son的父類
def__init__
(self)
:super
(son, self)
.__init__(
)print
("這是子類的"
)
son = son(
)# 類的例項化物件
這是父類的
這是子類的
有些同學可能會問,既然上面的方法可以使用,為何還要用super方法呢?下面我們再看乙個例子:
class
grandfather()
:# grandfather為父類
def__init__
(self)
:print
("這是父類的"
)class
son(grandfather)
:# grandfather為son的父類
def__init__
(self)
:super
(son, self)
.__init__(
)print
("這是子類的"
)
son = son(
)# 類的例項化物件
這是父類的
這是子類的
我們可以看到,當我們修改了son繼承的類時,**的結果仍然是相同的,我們不需要改變內部的父類名。用第一種方法時有乙個不好的地方就是,需要將父類名寫到子類中,而我們用super方法就可以解決這個問題。 Python super關鍵字用法
使用super關鍵字,會按照繼承順序執行相應類中的方法,在沒有多繼承的情況下,一般是執行父類 coding utf 8 usr bin python class counter object def init self super counter,self setattr counter 0 def...
new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
this關鍵字 static關鍵字
1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...