1. 程式人生 > >繼承,多繼承,單繼承

繼承,多繼承,單繼承

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):
    def
miaow(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()

多繼承:
新式類:遵循廣度優先
經典類:遵循深度優先


待續.....

繼承,多繼承,單繼承