初識python: 多態

多態:容許你將父對象設置成爲,與一個或更多其子對象相等的技術,賦值以後,父對象就能夠根據當前賦值給它的子對象的特性以不一樣的方式運做。

     簡單講就是:容許將子類類型的指針賦值給父類類型的指針。

多態的做用是什麼? 
  咱們知道,封裝能夠隱藏實現細節,使得代碼模塊化;繼承能夠擴展已存在的代碼模塊(類);它們的目的都是爲了——代碼重用。而多態則是爲了實現另外一個目的—— 接口重用!多態的做用,就是爲了類在繼承和派生的時候,保證使用「家譜」中任一類的實例的某一屬性時的正確調用。
總之就是,一個接口,多種實現。
Pyhon 不少語法都是支持多態的,好比 len(),sorted(), 你給len 傳字符串就返回字符串的長度,傳列表就返回列表長度。
 
實例以下:
#!/user/bin env python
# author:Simple-Sir
# time:2019/8/26 16:40
# 多態
class People(object):
    def __init__(self, name):
        self.name = name

    def dosome(self):
        pass

    def dofunc(obj):  # 一個接口,多種形態
        obj.dosome()

class Sleep(People):
    def dosome(self):
        print('%s在睡覺。' % self.name)

class Eat(People):
    def dosome(self):
        print('%s在吃飯。' % self.name)

# def dofunc(obj):  # 一個接口,多種形態
#     obj.dosome()

# 實例化
s1 = Sleep('穗穗')
e1 = Eat('依依')

# 使用統一接口,實現多態
People.dofunc(s1)
People.dofunc(e1)

運行結果:python

相關文章
相關標籤/搜索