python繼承,python豐富的類因為繼承而變得多姿多彩,如果語言不支持繼承,那么類就沒什么優(yōu)勢。
1、首先我們來定義兩個類
一個dog類,一個bird類class Dog: def sleeping(self): print ('dog 正在睡覺') def speaking(self): print('汪汪')class Bird: def flying(self): print('正在飛') def speaking(self): print('嘰嘰嘰')

2、我們先調(diào)用bird類來看看 輸出結(jié)果
實例化對象,然后調(diào)用它的方法
myani=Bird()print(myani.flying(),myani.speaking())輸出正在飛嘰嘰嘰


3、我們定義一個cat類來繼承dog類,看看它的調(diào)用
重寫speaking方法,
class Cat(Dog): def speaking(self): print ('喵喵')mycat=Cat()print(mycat.speaking(),mycat.sleeping())輸出:
喵喵
dog 正在睡覺
可以看出叫聲變了 睡覺沒變,因為我們只重寫了speaking方法


4、我們在定義一個類來繼承 bird類
我們不對 父類重寫,而是進行擴展,子類多了方法sleeping,這也是類的優(yōu)點,可以擴展
class MaoTouYing(Bird): def sleeping(self): print('貓頭鷹白天睡覺maotouying =MaoTouYing()print(maotouying.sleeping(),maotouying.speaking(),maotouying.flying())輸出結(jié)果:
貓頭鷹白天睡覺
嘰嘰嘰
正在飛
(None, None, None)


5、下面我們來定義一個多繼承
如下所示,我們不對字類進行任何擴展,或者重寫,直接讓它繼承父類
class FlyCat(Dog,Bird): passflycat=FlyCat()print(flycat.flying(),flycat.speaking(),flycat.sleeping())
輸出結(jié)果:
正在飛
汪汪
dog 正在睡覺
(None, None, None)


6、細心的朋友注意到,以上調(diào)用都會輸出 None,那是python默認都有一個返回值,我們的方法都是 print,所以默認返回None
新聞熱點
疑難解答