Python學習之路:多態實例


多態性(polymorphisn)是允許你將父對象設置成為和一個或更多的他的子對象相等的技術,賦值之后,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。
那么,多態的作用是什么呢?我們知道,封裝可以隱藏實現細節,使得代碼模塊化;繼承可以擴展已存在的代碼模塊(類);它們的目的都是為了——代碼重用。而多態則是為了實現另一個目的——接口重用!多態的作用,就是為了類在繼承和派生的時候,保證使用“家譜”中任一類的實例的某一屬性時的正確調用。
Pyhon 很多語法都是支持多態的,比如 len(),sorted(), 你給len傳字符串就返回字符串的長度,傳列表就返回列表長度。
class Animal(object):

    def __init__(self, name):  # Constructor of the class

        self.name = name



    def talk(self):              # Abstract method, defined by convention only

        raise NotImplementedError("Subclass must implement abstract method")



class Cat(Animal):

    def talk(self):

        print('%s: 喵喵喵!' %self.name)





class Dog(Animal):

    def talk(self):

        print('%s: 汪!汪!汪!' %self.name)





def func(obj): #一個接口,多種形態

    obj.talk()



c1 = Cat('小晴')

d1 = Dog('李磊')



func(c1)

func(d1)

 


免責聲明!

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



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