繼承與派生

2022-08-24 07:39:11 字數 2027 閱讀 1745

繼承

1.什麼是繼承?

在程式中繼承是一種新建子類的方式 新建立的類稱之為之類\派生類 被繼承的類稱之為父類\基類\超類

2.為何要用繼承?

減少類與類之間**冗餘的問題

3.如何繼承?

先抽象再繼承

python中繼承的特點分為單繼承和多繼承

class

parent:

pass

class

parent2:

pass

class

sub1(parent):

pass

#單繼承

class

sub2(parent,parent2):

pass

#多繼承

python2和python3在繼承上的區別

新式類:但凡繼承object類的子類,以及該子類的子子類....都稱為新式類

經典類:沒有繼承object類的子類,以及該子類的子子類....都稱為經典類

只有python2中才區分新式類與經典類

派生

在子類派生出的新功能中如何重用父類的功能:

方式一:指名道姓地訪問某乙個類中的函式 與繼承無關

class

people:

def__init__

(self,name,age):

self.name=name

self.age =age

class

student(people):

def__init__

(self,name,age,num):

people.

__init__

(self,name,age)

self.num = num

方式二:super 在python3中super不傳引數,呼叫該函式會得到乙個特殊的物件,該物件是專門用來訪問父類中的屬性的

強調:super會嚴格參照類的mro列表依次查詢屬性

class

people:

def__init__

(self,age,name):

self.age=age

self.name=name

class

teacher(people):

def__init__

(self,age,name,salary):

super(teacher,self).

__init__

(age,name)

self.salary = salary

屬性的查詢:

1.在單繼承背景中,無論是新式類還是經典類屬性查詢順序都一樣

先obj->類->父類......

2.在多繼承背景下,如果乙個子類繼承了多個分支,但是多個分支沒有匯聚到乙個非object類,無論是新式類還是經典類屬性查詢順序都一樣

會按照從左到右的順序乙個分支乙個分支的查詢下去

3.在多繼承背景下,如果乙個子類繼承了多個分支,但是多個分支最終匯聚到乙個非object類

新式類:廣度優先查詢

經典類:深度優先查詢

派生與繼承 多重派生

1 理解下面的程式,並在 vc 6.0 下執行檢視結果,回答程式後面的問題。class cbase1 cbase1 void print protected int a class cbase2 cbase2 void print protected int b class cderive publ...

繼承與派生

實驗內容 建立乙個基類,兩個派生類,讓每乙個派生類都包含乙個函式area 分別用來返回矩形和三角形的面積。用建構函式對height和width進行初始化。要求通過基類指標訪問虛函式的方法。純虛函式 virtual double area 0 純虛函式的作用是在基類中為派生類保留乙個函式的名字,以便派...

繼承與派生

在c 中,所謂 繼承 就是在乙個已存在的類的基礎上建立乙個新的類。已存在的類成為 基類 新建立的類成為 派生類 乙個新類從已有的類那裡獲得其已有特性,這種現象成為累的繼承。從另一角度說,從已有的類產生乙個新的子類,稱謂累的派生。派生類的宣告方式 class 派生類名 繼承方式 基類名 派生類新增加的...