當前位置:編程學習大全網 - 編程語言 - 什麽是多態性

什麽是多態性

多態性就是多種表現形式,具體來說,可以用"壹個對外接口,多個內在實現方法"表示。舉壹個例子,計算機中的堆棧可以存儲各種格式的數據,包括整型,浮點或字符。不管存儲的是何種數據,堆棧的算法實現是壹樣的。針對不同的數據類型,編程人員不必手工選擇,只需使用統壹接口名,系統可自動選擇。

多態性也分靜態多態性和動態多態性兩種。靜態多態性是指定義在壹個類或壹個函數中的同名函數,它們根據參數表(類型以及個數)區別語義,並通過靜態聯編實現,例如,在壹個類中定義的不同參數的構造函數。動態多態性是指定義在壹個類層次的不同類中的重載函數,它們壹般具有相同的函數,因此要根據指針指向的對象所在類來區別語義,它通過動態聯編實現。

“多態性”壹詞最早用於生物學,指同壹種族的生物體具有相同的特性。在面向對象理論中,多態性的定義是:同壹操作作用於不同的類的實例,將產生不同的執行結果,即不同類的對象收到相同的消息時,得到不同的結果。多態性包含編譯時的多態性、運行時的多態性兩大類。

動態多態是指發出同樣的消息被不同類型的對象接收時,有可能導致完全不同的行為。即,在用戶不作任何幹預的環境下,類的成員函數的行為能根據調用它的對象類型自動作出適應性調整,而且調整是發生在程序運行時。 多態是面向對象程序設計的重要特征之壹。是擴展性在“繼承”之後的又壹重大表現 。

比方壹下:

妳和妳朋友都是煙鬼,

某日,妳沒有帶煙, 而妳朋友有n種煙,

妳說: 來根煙,

朋友給妳壹根;

妳通過煙的過濾嘴, 品出為白沙煙

妳再要壹根,

品出這次是芙蓉王,

再要壹根,

品出這次是熊貓

...

上面描述的就是多態!

煙 a = 白沙

煙 b = 芙蓉王

煙 c = 熊貓

但發現沒有, 僅僅通過"煙"基類, 引用到不同的具體類對象,

就能讓妳調用到不同的對象, 這就是多態.

而煙到妳嘴裏[此時妳還沒有發現是那種煙], 妳僅僅憑借"吸"的動作,就識別出來,到底是哪種煙對象

這就是多態的懸機.

多態須具備:

1. 基類 和各個子類

2. 基類 引用, 指向實例化的子類對象.

再舉壹個雞的例子,

雞是所有其它雞的基類, 定義了壹個方法shape(), 此方法能指明雞的形態. 所有的子類[火雞,山雞,田雞等],都有這個shape方法, 表明自己的形態,

如果用下面的方法定義我需要具體的雞,

[基類 引用 = 實現類的對象]

for example:

雞 a = new 火雞();

雞 a = new 田雞();

雞 a = new 山雞();

雞 a = new 母雞();

當我使用的時候, 我采用 a 這個引用,

a.shape(), 就會得到雞的形態.

如果我定義的是

雞 a = new 火雞();

那麽a.shape得到的是火雞的形態, 而不需要用具體的

火雞 a = new 火雞(); 再通過a.shape得到火雞的形態

  • 上一篇:發那科系統報警大全
  • 下一篇:求:青春勵誌電影,素材:關於畢業生打工或創業方面.
  • copyright 2024編程學習大全網