1. 程式人生 > 其它 >繼承(純理論)

繼承(純理論)

什麼是繼承

繼承是為了解決多個類中程式碼重用的一種方式,一般來說,可能有很多的類,都存在相同的方法,那麼我們就可以將共有的屬性,提取出來存放到一個類中作為一個父類,然後後續可以建立新類,直接繼承這個父類;繼承之後子類就能呼叫父類的非私有屬性或方法

別名:新建的類可稱為子類或派生類,父類又可稱為基類或超類,子類會遺傳父類的屬性

為什麼要有類?為什麼要有繼承?繼承解決了什麼?

1.類能夠抽象出物件之間共有的程式碼,讓程式碼更加簡潔
2.而繼承能夠抽象出類之間共有的程式碼,讓程式碼更加簡潔

python2和python3的新式類和經典類

繼承了object的叫做新式類,沒有繼承的叫做經典類;新式類中預設集成了一些常用的開發類或方法,能夠讓開發者更加方便地使用內建程式碼

python支援多繼承

優點:子類能夠同時遺傳多個父類的屬性,最大限度地重用程式碼
缺點:大部分面向物件的程式語言(除了C++)都只支援單繼承,而不支援多繼承,為什麼呢?因為多繼承不僅增加程式設計複雜度,而且容易導致莫名其妙的錯誤。
Python雖然語法上支援多繼承,但是卻不推薦使用多繼承,而是推薦使用單繼承,這樣可以保證程式設計思路更清晰,也可以避免不必要的麻煩。
缺點舉例:https://www.cnblogs.com/tizer/p/11142475.html

呼叫父類函式屬性的兩種方法

  1. 什麼時候用:在父類和子類存在同名方法時,如果想呼叫父類的時候

(1)父類名.方法名(self) # 使用父類名稱呼叫父類的方法一定一加self

(2)super().方法名() # super就代表父類的記憶體地址,()表示執行new方法,呼叫上一級父類,上一級父類無該方法,就繼續往上找,如果是多繼承,優先呼叫最左邊的那個父類

  2. super的原始碼解析

https://www.jianshu.com/p/de7d38c84443