Python關於多繼承


大部分面向對象的編程語言(除了C++)都只支持單繼承,而不支持多繼承,為什么呢?因為多繼承不僅增加編程復雜度,而且容易導致莫名其妙的錯誤。

Python雖然語法上支持多繼承,但是卻不推薦使用多繼承,而是推薦使用單繼承,這樣可以保證編程思路更清晰,也可以避免不必要的麻煩。

當以一個子類有多個直接父類時,該子類會繼承得到所有父類的方法,但是如果其中有多個父類包含同名方法會發生什么?此時排在前面的父類中的方法會“遮蔽”后面父類中的方法。

栗子如下:

 1 #coding=utf-8
 2 class Item:
 3     def info(self):
 4         print("Item中的方法",'這是一個商品')
 5         
 6 class Product:
 7     def info(self):
 8         print('Product中的方法','這是一個能賺錢的商品')
 9         
10 class Computer(Item,Product):
11     pass
12     
13 c = Computer()
14 c.info()

控制台打印如下:

解釋:控制台打印的是Item類中的方法,所以說子類所繼承的父類中的方法,如果存在同名,前面的會“遮蔽”后面的即前面的直接父類優先級高於后面的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM