繼承,多繼承,單繼承
阿新 • • 發佈:2018-08-01
self per int 深度優先 div 都是 sel nim ima
繼承
子類以及子類實例化的對象可以父類的任何方法或變量
類名可以訪問父類所有內容
class Animal: def __init__(self,name,sex,age): self.name=name self.sex=sex self.age=age def eat(self,a1): print(‘%s吃%s‘ % (self.name,a1)) def drink(self): print(‘%s喝東西‘ %(self.name)) class Cat(Animal): defmiaow(self): print(‘喵‘) class Brid(Animal): def __init__(self,name,sex,age,wing): super().__init__(name,sex,age) self.wing=wing def bark(self): print(‘啾啾‘) def eat(self,b2): super().eat(b2) #super()拿到父類中的這個方法,然後執行父類中的這個方法,同事也執行子類中的這個方法 print(‘狗狗在吃飯‘) #既執行父類中的這個方法又執行子類中的這個方法,父類和子類中必須都有這個方法 a1=Brid(‘小雞‘,‘公‘,2,‘kan‘) a1.eat(‘蟲子‘) #這個參數是傳給父類裏面eat這個方法的 #執行子類中的方法 cat1=Cat(‘小白‘,‘公‘,2) cat1.miaow() #只執行父類的方法,子類中不要定義與父類同樣的方法 #只執行子類中的方法,父類中不要定義與子類同樣的方法
繼承:單繼承,多繼承
類:新式類,經典類
新式類:凡是繼承object類的都是新式類
Python3 中都是新式類,因為Python3 中類都默認繼承object
經典類:不繼承object類的都是經典類
Python2 (既有新式類,又有經典類)所有的類默認都不繼承object類,所有的類默認都是經典類,你可以讓其繼承object.
單繼承:新式類,經典類查詢順序一樣
class A: pass def func(self): print(‘in a‘) class B(A): pass def func(self): print(‘in b‘) class C(B): pass def func(self): print(‘in c‘) c1=C() c1.func()
多繼承:
新式類:遵循廣度優先
經典類:遵循深度優先
待續.....
繼承,多繼承,單繼承