【面向對象】多態
阿新 • • 發佈:2018-05-17
bsp defined 隱藏 nbsp err init bstr 網上 就是
多態性(polymorphisn)是允許你將父對象設置成為和一個或更多的他的子對象相等的技術,賦值之後,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。
封裝可以隱藏實現細節,使得代碼模塊化; 繼承可以擴展已存在的代碼模塊(類); 它們的目的都是為了——代碼重用。 而多態則是為了實現另一個目的——接口重用! 多態的作用,就是為了類在繼承和派生的時候,保證使用“家譜”中任一類的實例的某一屬性時的正確調用 網上找的例子: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)
【面向對象】多態