Python繼承機制

2021-09-11 16:22:58 字數 1456 閱讀 3075

被繼承的類稱為基類、父類或超類;繼承者稱為子類,乙個子類可以繼承它的父類的任何屬性和方法。舉個例子:

# 類名大寫,方法名小寫,約定俗稱

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函式是惟一的,避免了二義性。二 派生類指標不能直接指向基類物件。三 派...