我只想當個程序員
摘 : http://hacker.cnblogs.com/archive/2004/08/10/31774.aspx
對virtual的說明是對的:(它一般用在基類中,子類中用override) 1.無virtual時,編譯期就確定方法的類型了。也即:無法實現多態了。 2.有vitual時,方法在運行時確定類型。可以實現多態,只要子類override基類的vitual方法。(也就是樓主的第2點)。 實現java 動態調用 另外取個方法 與原來無關.
對于new沒有說清楚: new與virtual并沒有必然的聯系。從字面上看,new聲明的方法是一個“新”方法,與基類完全沒有關系(雖然不幸與基類的某個方法同名同參)。也即:通過向上轉型(如:基類 引用名=new 子類())得到的引用將無法看到子類中new出來的方法。所以會出現樓主第3點中的結果。
posted on 2008-08-29 08:26 小高 閱讀(231) 評論(0) 編輯 收藏 所屬分類: DotNet