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 閱讀(120) 評論(0)  編輯  收藏

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


          網站導航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 武邑县| 呼图壁县| 新和县| 乳源| 黎平县| 罗江县| 南靖县| 抚松县| 定日县| 如东县| 邵东县| 黄骅市| 桑日县| 文登市| 海丰县| 北碚区| 霍城县| 民和| 奎屯市| 竹北市| 韩城市| 丹寨县| 仁布县| 嘉鱼县| 望江县| 静安区| 临洮县| 东平县| 唐山市| 平定县| 崇礼县| 平果县| 鄂尔多斯市| 兰考县| 莎车县| 兴化市| 正阳县| 平昌县| 乌鲁木齐县| 鱼台县| 盐亭县|