類別的多型
多態(tài)的概念其實不難理解,它是指對不同類型的變數(shù)進(jìn)行相同的操作,它會根據(jù)物件(或類別)類型的不同而表現(xiàn)出不同的行為。
事實上,我們常用到多態(tài)的性質(zhì),例如:
>>> 1 + 2 3 >>> 'a' + 'b' 'ab'
可以看到,我們對兩個整數(shù)進(jìn)行操作,會傳回它們的和,對兩個字元進(jìn)行相同的操作,會傳回拼接後的字串。也就是說,不同類型的物件對同一訊息會作出不同的回應(yīng)。
看下面的實例,來了解多態(tài):
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- class User(object): def __init__(self, name): self.name = name def printUser(self): print('Hello !' + self.name) class UserVip(User): def printUser(self): print('Hello ! 尊敬的Vip用戶:' + self.name) class UserGeneral(User): def printUser(self): print('Hello ! 尊敬的用戶:' + self.name) def printUserInfo(user): user.printUser() if __name__ == '__main__': userVip = UserVip('兩點水') printUserInfo(userVip) userGeneral = UserGeneral('水水水') printUserInfo(userGeneral)
輸出的結(jié)果:
Hello ! 尊敬的Vip用戶:兩點水 Hello ! 尊敬的用戶:水水水
可以看到,userVip 和userGeneral 是兩個不同的對象,對它們呼叫printUserInfo 方法,它們會自動呼叫實際類型的printUser 方法,作出不同的回應(yīng)。這就是多態(tài)的魅力。
要注意喔,有了繼承,才有了多態(tài),也會有不同類別的物件對同一訊息會作出不同的對應(yīng)。