python面向物件之多型
阿新 • • 發佈:2020-08-28
實現多型的步驟:
1、定義一個父類(Base),實現某個方法(比如:run)
2、定義多個子類,在子類中重寫父類的方法(run),每個子類run方法實現不同的功能
3、假設我們定義了一個函式,需要一個Base型別的物件的引數,那麼呼叫函式的時候,傳入Base類不同的子類物件,那麼這個函式會執行不同的功能,這就是多型的體現。
class Animal(object): '''定義一個Animal類''' def run(self): print("動物都會跑") class Cat(Animal): '''定義一個cat類,繼承Animal''' defrun(self): print("貓會跑") class Dog(Animal): '''定義一個Dog類,繼承Animal''' def run(self): print("狗會跑") class Test(): def run(self): print("Test類也有run方法") def func(obj): obj.run() #多型的意義是,根據不同的物件做不同的事情 a=Animal() func(a) c=Cat() func(c) d=Dog() func(d) #---python的多型實際是一個偽多型,因為他不能像java那樣定義資料型別,所以只有傳入有run方法的類的物件,都能執行run方法t=Test() func(t)
執行結果:
動物都會跑
貓會跑
狗會跑
Test類也有run方法
python的多型實際是一個偽多型,因為他不能像java那樣定義資料型別,所以只有傳入有run方法的類的物件,都能執行run方法