被繼承的類稱為基類、父類或超類;繼承者稱為子類,乙個子類可以繼承它的父類的任何屬性和方法。舉個例子:
# 類名大寫,方法名小寫,約定俗稱
class
parent
:def
hello
(self)
:print
("using parent's class..."
)class
child
(parent)
:pass
p = parent(
)p.hello(
)using parent's class..
.c = child(
)c.hello(
)using parent's class..
.
例子:
import random as r
# 父類
class fish
:def
__init__
(self)
: self.x = r.randint(0,
10)self.y - r.randint(0,
10)defmove
(self)
: self.x -=
1print
("my seat: "
, self.x, self.y)
# 子類
class shark
(fish)
:def
__init__
(self)
: self.hungry =
true
defeat
(self)
:if self.hungry:
print
("i want eat..."
) self.hungry =
false
else
:print
("i am full, don't eat..."
)shark = shark(
)shark.move(
)trackback (most recent call last)
: attributeerror:
'shark'
object has no attribute 'x'
# 原因:在shark類中,重寫了__init__()方法,但是新的__init__()方法裡沒有初始化父類的屬性(這裡是x,y),因此呼叫move方法就會出錯。結局方法:使用super函式
class
shark
(fish)
:def
__init__
(self)
:super()
.__init__().
..
Python 繼承機制
一般我們定義乙個類直接就是 class 類名 下面加上我們的內容 而如果我們我們定義的多個類中有相同的內容,如果我們一次又一次的重複定義相同的內容是不是有點麻煩呢,即使我們精通ctrl v c的使用不免想找到乙個更加簡便的方法。這個時候我們繼承機制就出場了 class 類名 要繼承類名 例項 cla...
javascript繼承機制
一 call 在子類中,用父類.call this,arg0,arg1,arg2.可以繼承父類。注意call的位置,盡量在子類的第一行 js按順序執行,放在後面可能對子類的其它屬性 方法有影響。比如子類和父類有相同名字的方法,後面的覆蓋前面的 馬上 分析 單純使用call這種類式繼承,對原型方法不起...
c 多繼承機制
由於兩義性問題的根源在公共基類,因此需要從公共基類著手,將公共基類說明為虛基類,就可以避免二義性。如下 注意 一 father 和mother在繼承時將human說明為虛基類,也就是只為子類son生成乙個speak函式,speak函式是惟一的,避免了二義性。二 派生類指標不能直接指向基類物件。三 派...