Python入門筆記—第九章【面向對象之OOP(第三部分,多態&多態性)】

第九章:面向對象之OOP(第三部分,多態&多態性)


2.5 多態

- 指一類事物或對象在不同的情況下有不同的狀態

    - 如:序列狀態下有多種形態:列表,元祖,集合,字典等

    - 如:動物有多種形態:人類,豬類,狗類等

- 多態不是語法,是一種設計思想

代碼實例:

#多態
class Animal():
    def run(self):

        pass
class Person(Animal):
    def run(self):
        print("Walking")

class Dog(Animal):
    def run(self):
        print("Walking")

class Pig(Animal):
    def run(self):
        print("Walking")

per = Person()
dog = Dog()
pig = Pig()

per.run()
dog.run()
pig.run()

2.6 多態性

- 向不同的對象發送同一條消息(函數),不同的對象在接收時會產生不同的行爲,即:同一種調用方式,不同的執行結果

代碼實例:

#多態性
class Animal():
    def run(self):

        pass
class Person(Animal):              #人類
    def talk(self): 
        print("Say Hello")

class Dog(Animal):                 #狗類
    def talk(self):
        print("Say Wangwang")

class Pig(Animal):                 #豬類
    def talk(self):
        print("Say Honghong")


def talk(animal):            #此處只定義了一個函數
    animal.talk()
    

per = Person()
dog = Dog()
pig = Pig()

talk(per)                     #當使用同一種調用方式時,出現不同的結果,稱之爲多態性
talk(dog) 
talk(pig)

結果:

Say Hello
Say Wangwang
Say Honghong

2.6.1 使用多態性的好處

- 增加了程序的靈活性。不論對象千變萬化,都是使用同一個方法(函數)調用

- 增加的程序的可擴展性。使用Animal繼承的一個新類,無需去更改原本的代碼,還是使用函數talk()去調用

2.7 多態和多態性的區別

- 多態:從定義角度上看

- 多態性:從調用(執行)角度上看

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章