new 是新創建,override是重載已經有的

          看下面例子大家就知道了

          A類 有方法 public virtual void test()
          B類繼承自A類,有方法 public new void test()
          如下實例化:
          A a = new B();
          a.test();

          如果你用override,則無論調用的是A類還是B類中的TEST(),系統都會找到它實質類的TEST();
          如果是用的New,則可以通過類型轉換調用到基類的TEST();

          下面是override的情況:
          A a = new A();
          B b = new B();
          A a1=new B();
          a.Test();//調用A中Test();
          b.Test();//調用B中Test();
          a1.Test();//調用B中Test();系統會自動識別a1是B的實例
          ((A)b).Test();//與上面相同

          下面是new的情況:
          A a = new A();
          B b = new B();
          A a1=new B();
          a.Test();//調用A中Test();
          b.Test();//調用B中Test();
          a1.Test();//調用A中Test();
          ((A)b).Test();//與上面相同

          如果是new呢 對象是父類的就調用父類的方法

          是子類的對象就調用子類的方法

          如果把子類強制轉換成父類

          那么對象也調用父類的方法

          posted on 2009-02-24 16:33 sanmao 閱讀(122) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 岐山县| 黄平县| 普宁市| 承德县| 中山市| 盖州市| 阳新县| 黄陵县| 绥化市| 葫芦岛市| 舟山市| 常山县| 石楼县| 三江| 泾源县| 临高县| 徐闻县| 莱芜市| 宁德市| 大洼县| 思南县| 漳平市| 房山区| 育儿| 江永县| 右玉县| 南澳县| 方山县| 彭泽县| 察雅县| 四子王旗| 宾阳县| 吉隆县| 迁西县| 洮南市| 准格尔旗| 莱芜市| 安阳县| 高密市| 利辛县| 石城县|