python基礎之多態(tài)
多態(tài)
多態(tài):顧名思義九四多種形態(tài)\狀態(tài),就是同一種行為對不同的子類[對象]有不同的行為表現(xiàn)
要想實現(xiàn)多態(tài) 必須有兩個前提需要遵守:
1.必須存在一種繼承關系,必須發(fā)生在父類和子類之間
2.重寫:子類重寫父類的方法
多態(tài)的優(yōu)點:
多態(tài)可以增加程序的靈活性
增加程序的擴展性
只要具備某種方法,無論繼承者是誰,定義者是誰,都可以去調用


案例演示
class Animal:
def say_who(self):
'''
父類【基類】
:return:
'''
print('你是一個動物')
pass
pass
class Duck(Animal):
'''
繼承于animal這個類 鴨子類【子類】派生類
'''
def say_who(self):
'''
在這里重寫父類的方法
:return:
'''
print('我是鴨鴨丫')
pass
class Dog(Animal):
def say_who(self):
print('只是一只汪罷了')
pass
pass
duck1=Duck()
duck1.say_who()
dog=Dog()
dog.say_who()

class Animal:
def say_who(self):
'''
父類【基類】
:return:
'''
print('你是一個動物')
pass
pass
class Duck(Animal):
'''
繼承于animal這個類 鴨子類【子類】派生類
'''
def say_who(self):
'''
在這里重寫父類的方法
:return:
'''
print('我是鴨鴨丫')
pass
class Dog(Animal):
def say_who(self):
print('只是一只汪罷了')
pass
pass
# 使用統(tǒng)一的函數(shù)去調用
def commonInvoke(obj):
'''
同意調用的方法
:param obj: 對象的實例
:return:
'''
obj.say_who()
# duck1=Duck()
# duck1.say_who()
# dog=Dog()
# dog.say_who()
listObj=[Duck(),Dog()]
for item in listObj:
'''
循環(huán)調用函數(shù)
'''
commonInvoke(item) #通過函數(shù)統(tǒng)一調用

增加新類完全無需修改代碼,只需將需要的代碼添加上就是了
# 案例演示
class Animal:
def say_who(self):
'''
父類【基類】
:return:
'''
print('你是一個動物')
pass
pass
class Duck(Animal):
'''
繼承于animal這個類 鴨子類【子類】派生類
'''
def say_who(self):
'''
在這里重寫父類的方法
:return:
'''
print('我是鴨鴨丫')
pass
class Dog(Animal):
def say_who(self):
print('只是一只汪罷了')
pass
pass
class Bird(Animal):
def say_who(self):
print('門前大橋下,停著一只鳥')
# 使用統(tǒng)一的函數(shù)去調用
def commonInvoke(obj):
'''
同意調用的方法
:param obj: 對象的實例
:return:
'''
obj.say_who()
# duck1=Duck()
# duck1.say_who()
# dog=Dog()
# dog.say_who()
listObj=[Duck(),Dog(),Bird()]
for item in listObj:
'''
循環(huán)調用函數(shù)
'''
commonInvoke(item) #通過函數(shù)統(tǒng)一調用

總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
相關文章
Python中urlencode()函數(shù)構建URL查詢字符串的利器學習
這篇文章主要為大家介紹了Python中urlencode()函數(shù)構建URL查詢字符串的利器學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10
python-OpenCV 實現(xiàn)將數(shù)組轉換成灰度圖和彩圖
今天小編就為大家分享一篇python-OpenCV 實現(xiàn)將數(shù)組轉換成灰度圖和彩圖,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python中使用pyhook實現(xiàn)鍵盤監(jiān)控的例子
這篇文章主要介紹了python中使用pyhook實現(xiàn)鍵盤監(jiān)控的例子,包含pyhook的下載地址和手冊地址及一個Windows下的監(jiān)控實例,需要的朋友可以參考下2014-07-07
Python中的進程操作模塊(multiprocess.process)
這篇文章介紹了Python中的進程操作模塊(multiprocess.process),文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
Python解決“argument?after?*?must?be?an?iterable”報錯問題
這篇文章主要介紹了Python解決“argument?after?*?must?be?an?iterable”報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12

