多型的概念其實不難理解,它是指對不同型別的變數進行相同的操作,它會根據物件(或類)型別的不同而表現出不同的行為。
事實上,我們經常用到多型的性質,比如:>>> 1 2
>>> 'a' 'b'
'ab'
可以看到,我們對兩個整數進行 操作,會返回它們的和,對兩個字元進行相同的 操作,會返回拼接後的字串。也就是說,不同型別的物件對同一訊息會作出不同的響應。
再看看類的例子:class animal(object):
def __init__(self, name):
self.name = name
def greet(self):
print 'hello, i am %s.' % self.name
class dog(animal):
def greet(self):
print 'wangwang.., i am %s.' % self.name
class cat(animal):
def greet(self):
print 'miaomiao.., i am %s' % self.name
def hello(animal):
animal.greet()
看看多型的使用:>>> dog = dog('dog')
>>> hello(dog)
wangwang.., i am dog.
>>>>>> cat = cat('cat')
>>> hello(cat)
miaomiao.., i am cat
可以看到,cat 和 dog 是兩個不同的物件,對它們呼叫 greet 方法,它們會自動呼叫實際型別的 greet 方法,作出不同的響應。這就是多型的魅力。
什麼是多型?
多型是在不同繼承關係的類物件,去呼叫同一函式,產生了不同的行為。在繼承體系中,構成多型還必須滿足兩個條件 呼叫函式的物件必須是基類的指標或者引用 多型是 不需要知道物件的實際型別,也能夠呼叫正確的功能。而如果直接操作物件,它的型別就已經被編譯器知道了,看似多型,實則不是。被呼叫的函式必須是虛函式,且...
什麼是多型?
多型是同乙個行為具有多個不同表現形式或形態的能力。abstract class shapes public abstract void draw public void show class circle extends shapes class square extends shapes publ...
什麼是多型?
1.多型的概念 同乙個事物在不同場景下表現出不同的狀態 2.多型的實現條件 前提在繼承的體系下 1.基類中必須要包含虛函式 被virtual關鍵字修飾的類成員函式成為虛函式 派生類中必須要對基類中的虛函式進行重寫 2.虛函式的呼叫 必須通過基類的指標或引用呼叫虛函式 在程式執行時,來確定函式的行為 ...