1. 單繼承
2. 繼承中的方法重寫
3. 多繼承
總結
1. 單繼承繼承的主要作用是實現代碼的重用。繼承使得子類擁有父類的方法和屬性。
直接來看一個例子吧。
class animal:def eat(self):print("吃")def drink(self):print("喝")class dog(animal):def dark(self):print("汪汪叫")goudan = dog()goudan.eat()goudan.drink()
從上面的代碼可以看出,在編寫dog類的時候,我們並沒有重寫eat和drink兩個方法。我們只需要在dog後面的括號中加上父類的名字即可。當子類繼承了父類,子類就可以直接使用父類中的方法了。在本例中,goudan可以直接使用animal類中的eat和drink兩個方法。
而且一個神奇的事情是,繼承是具有傳遞性的。子類擁有父類的方法和屬性,同時也具有父類的父類所具有的屬性。
有時候,父類中的方法並不能完成滿足子類的需求。這時候我們就需要方法重寫了。子類方法重寫一般有兩種情況:
覆蓋父類的方法
對父類的方法進行擴展
一種簡單的方法是直接重寫相應的方法。下面這個例子就是重寫了drink這個方法。當使用goudan調用drink這個方法方法時,結果並不是喝而是拿舌頭喝水。
class animal:def eat(self):print("吃")def drink(self):print("喝")class dog(animal):def drink(self):print("拿舌頭喝水")def dark(self):print("汪汪叫")goudan = dog()goudan.eat()goudan.drink()
當我們的需求不是簡單的覆蓋父類中的方法,而是在父類方法的基礎上對方法進行擴展。具體的做法是:
在需要的位置使用super().父類方法 來調用父類方法的執行
代碼的其他位置針對子類的需求,編寫子類持有的代碼實現
我們來看一個例子,此時goudan在調用drink方法的時候,會輸出喝和拿舌頭喝水兩個輸出。
class animal:def eat(self):print("吃")def drink(self):print("喝")class dog(animal):def drink(self):# 1. 根據子類的需求編寫特定的代碼print("拿舌頭喝水")# 2. 使用super繼承父類中的fangfasuper().drinkdef dark(self):print("汪汪叫")goudan = dog()goudan.eat()goudan.drink()
3. 多繼承對於Python而言,一個子類可以有多個父類。多繼承的基本語法是比較簡單的。話不多說,直接看一個例子
class A():def test(self):print("test")class B():def demo(self):print("demo")class C(A,B):passc = C()c.test()c.demo()
總結到此這篇關於Python中類的繼承的文章就介紹到這了,更多相關Python類的繼承內容請搜索軟件開發網以前的文章或繼續浏覽下面的相關文章希望大家以後多多支持軟件開發網!