python 單繼承,多繼承

2021-10-10 20:44:02 字數 1954 閱讀 8778

# 父類

class

person

: def __init__

(self, name, ***, age)

: self.name = name

self.*** = ***

self.age = age

def introduce

(self)

:print

('父類方法person:'

, self.name)

#學生類 繼承 person

class

student

(person)

: def __init__

(self, name, ***, age, grade)

: person.

__init__

(self, name, ***, age) # 通過父類直接呼叫__init__方法

self.grade = grade # 派生屬性

def gr

(self)

: # 派生方法

print

(self.grade)

#工人類 繼承 person

class

worker

(person)

: def __init__

(self, name, ***, age, money)

:super

(worker, self)

.__init__

(name, ***, age) # worker, self 可以不寫

# person.

__init__

(self, name, ***, age) #這是上一行的另外一種寫法

self.money = money # 派生屬性

def make

(self)

: # 派生方法

print

(self.money)

s1 =

student

('tom'

,'man',24

,99)s1.gr(

) # 99

print

(s1.name) # tom

s1.introduce

() # 父類方法 tom, 呼叫父類方法,若子類有同名方法,會呼叫子類的方法

person.

introduce

(s1) # 呼叫父類方法

super

(student, s1)

.introduce

() # 呼叫父類方法

當乙個子類有多個直接父類時,該子類會繼承得到所有父類的方法,但是如果其中有多個父類包含同名方法會發生什麼?此時排在前面的父類中的方法會「遮蔽」後面父類中的方法。

#coding=utf-

8class

item

: def info

(self)

:print

("item中的方法"

,'這是乙個商品'

)class

product

: def info

(self)

:print

('product中的方法'

,'這是乙個能賺錢的商品'

)class

computer

(item,product)

: pass

c =computer()

c.info

()

最後會輸出:item中的方法 這是乙個商品

python雖然語法上支援多繼承,但是卻不推薦使用多繼承,而是推薦使用單繼承,這樣可以保證程式設計思路更清晰,也可以避免不必要的麻煩

Python之繼承(概念,單繼承,多繼承)

父類 class 父類類名 object 類體 公共部分 子類 class 子類類名 父類類名 類體 子類特有的部分 定義父類 注意 如果沒有顯示的規定父類,則這個類的父類預設為object class person object 成員變數 def init self,name,age self.n...

單繼承 多繼承 菱形繼承

乙個類繼承另外乙個類,那麼該類就是子類 衍生類 被繼承的這個類叫做父類 基類,超類 繼承 1 單繼承 2 多繼承 python所有的類都預設繼承父類 object 如果子類想呼叫父類私有的,要先在父類裡面定義乙個公有的,然後在公有的裡面先調出私有,最後就可以間接的調出私有,不能在子類中定義公有 cl...

單繼承和多繼承

物件導向的三大特性 封裝,繼承,多型.什麼是繼承?專業角度 b 繼承 a類,b就叫做a的子類,派生類,a叫做b的父類,基類,超類.b類以及b類的物件使用a類的所有的屬性以及方法.字面意思 繼承就是繼承父母所有的資產.單繼承,多繼承.繼承的優點.節省 增強的耦合性.規範化.單繼承.子類以及物件可以呼叫...