2009-07-07 34 views
0

我知道,當我們在我們自己的基類中有一個虛函數,然後通過在派生類中覆蓋它並考慮在變量聲明時進行投射時,我們與在派生類中使用新修飾符進行比較的結果不同。但爲什麼?是否有任何合乎邏輯的原因,或者我們必須在沒有任何理由的情況下學習?基於什麼邏輯的原因,虛擬和新修飾符在繼承和多態性問題上有不同的結果?

+0

你問的一個例子會使問題更清楚 – 2009-07-07 08:38:32

回答

0

我假設你指的是C#。

基本上,當子類方法與超類方法無關時,使用new修飾符。他們分享名字,但沒有共同的多態行爲。當你多態重新定義名稱時,這被稱爲覆蓋。

0

而不是使用新的運營商,我會建議爲該方法選擇一個不同的名稱。