1. 程式人生 > >【面向對象】多態

【面向對象】多態

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)

【面向對象】多態