繼承
1.什麼是繼承?
在程式中繼承是一種新建子類的方式 新建立的類稱之為之類\派生類 被繼承的類稱之為父類\基類\超類
2.為何要用繼承?
減少類與類之間**冗餘的問題
3.如何繼承?
先抽象再繼承
python中繼承的特點分為單繼承和多繼承
classparent:
pass
class
parent2:
pass
class
sub1(parent):
pass
#單繼承
class
sub2(parent,parent2):
pass
#多繼承
python2和python3在繼承上的區別
新式類:但凡繼承object類的子類,以及該子類的子子類....都稱為新式類
經典類:沒有繼承object類的子類,以及該子類的子子類....都稱為經典類
只有python2中才區分新式類與經典類
派生
在子類派生出的新功能中如何重用父類的功能:
方式一:指名道姓地訪問某乙個類中的函式 與繼承無關
classpeople:
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列表依次查詢屬性
classpeople:
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 派生類名 繼承方式 基類名 派生類新增加的...