2011-09-20 63 views
2

兩者有什麼區別?OverPiding與PolyMorphism

超類有myMethod(int a)和具有相同方法的繼承類, 這是重寫還是多態?

我很清楚b/w覆蓋和重載的區別,但多態和覆蓋看起來是一樣的。或者他們?

回答

6

覆蓋是指當您調用某個對象上的方法時,調用具有與超類中相同簽名的子類中的方法。

多態性是您不確定運行時的對象類型,並調用最具體的方法的地方。因此,調用方法的行爲可能會有所不同,具體取決於運行時的對象類型。

覆蓋是一種多態,伴隨着重載和動態(遲)綁定。您可以通過使用重載查看更多詳情here about the different types.

+0

這意味着不同的是,在重寫,我知道什麼方法將被調用,但如果多個孩子繼承同樣的類,我不知道什麼類型的孩子會被調用,它是多態的。所以基本上,多態是一個使用覆蓋的概念? 我是否正確? – Kraken

+0

差不多。重寫是實現多態的一種方式,多態是這種重寫的結果。多態性只是一個原則,可以通過覆蓋,重載和動態(後期)綁定來實現。 – adamjmarkham

+1

鏈接已死/ 404。 – gerleim

0

是...我們實現多態的財產......當u有多個 類使用壓倒一切從一個父類派生......那裏......我們定義派生類的方法的功能,因爲他們是從同一父母派生我們顯示多態性的屬性..