一.什麼是繼承
繼承是一種新建類的方式,新建的類稱為子類,被繼承的類稱為父類
繼承的特性是:子類會遺傳父類的屬性
強調:繼承是類與類之間的關係
二.為什麼用繼承
因為繼承的好處就是可以減少**的冗餘
三.如何繼承
在python中支援乙個類同時繼承多個父類
在python3中
如果乙個類沒有繼承任何類,那預設繼承object類
在python2中
如果乙個類沒有繼承任何類,不會繼承object類
強調:在python3中都是新式類,只要在python2中才區別新式類與經典類
新式類和經典類的區分:
新式類:但凡繼承了object的類以及該類的子類,都是新式類
經典類:沒有繼承object的類以及該類的子類都是經典類
class parent1: #定義父類
pass
class parent2: #定義父類
pass
class sub1(parent1): #單繼承,基類是parentclass1,派生類是subclass
pass
class sub2(parent1,parent2): #python支援多繼承,用逗號分隔開多個繼承的類
pass
檢視繼承:
print(paren1.__bases__)
print(paren2.__bases__)
print(sub1.__bases__)
四. 派生:
子類中新定義的屬稱為派生,在使用中始終以自己的為準
物件查詢屬性的順序:物件自己-》物件的類-》父類-》父類。
在子類派生出的新功能中重用父類功能的方式有兩種:
方式一:與繼承無關
指名道姓法,直接用:類名.函式名 (
當成普通函使用,該傳幾個值就傳幾個
)
方式二:嚴格按照繼承屬性查詢關係# class oldboypeople:
直接呼叫,當成普通函使用,該傳幾個值就傳幾個# school = 'oldboy'
## def __init__(self, name, age, ***):
# self.name = name
# self.age = age
# self.*** = ***
## class oldboystudent(oldboypeople):
# def __init__(self,name,age,***,stu_id):
# oldboypeople.__init__(self,name,age,***) ####直接呼叫,當成普通函使用,該傳幾個值就傳幾個
# self.stu_id=stu_id
## def choose_course(self):
# print('%s is choosing course' %self.name)
# self.stu_id=stu_id
## def choose_course(self):
# print('%s is choosing course' %self.name)
super()會得到乙個特殊的物件,該物件就是專門用來訪問父類中的屬性的(按照繼承的關係)
super().__init__(不用為self傳值)
注意:
super的完整用法是super(自己的類名,self),在python2中需要寫完整,而python3中可以簡寫為super()
# class oldboypeople:
# school = 'oldboy'
## def __init__(self, name, age, ***):
# self.name = name
# self.age = age
# self.*** = ***
## class oldboystudent(oldboypeople):
# def __init__(self,name,age,***,stu_id):
# # oldboypeople.__init__(self,name,age,***)
# super(oldboystudent,self).__init__(name,age,***) # ##super()__init__(name,age,***)
# self.stu_id=stu_id
## def choose_course(self):
# print('%s is choosing course' %self.name)##
# stu1=oldboystudent('豬哥',19,'male',1)
# print(stu1.__dict__)
## print(oldboystudent.mro())
python物件導向程式設計 繼承
物件導向三大特性 封裝根據職責將屬性和方法封裝到乙個抽象的類中 繼承實現 的重用,相同的 不需要重複的編寫 多型不同的物件呼叫相同的方法,產生不同的執行結果,增加 的靈活度 1 繼承的語法class 類名 父類名 pass2 專業術語 3 繼承的傳遞性 子類擁有父類以及父類的父類中封裝的所有屬性和方...
物件導向程式設計 繼承
繼承是物件導向程式設計的主要特點之一。繼承,顧名思義就是子繼承父的所有。在面向程式設計中繼承的意思並沒變,子類繼承父類所擁有的屬性 方法。使用extends關鍵字使子類繼承父類,子類就可以自動復用父類的方法了 私有方法除外 並且繼承了父類的所有屬性。在子類例項化過程中子類的構造方法一定會去呼叫父類的...
物件導向程式設計 繼承
一 簡介 1 繼承是軟體復用的一種方式,通過繼承,可以吸收現有類的資料和行為來建立新類,並增添新的效能增類。2 派生類顯示繼承的基類稱為直接基類,經兩級或者多級類層次繼承的類稱為間接基類。3 繼承的方式 public private protected 4 派生類一般不能直接訪問基類的private...