new 是新創(chuàng)建,override是重載已經有的

          看下面例子大家就知道了

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

          如果你用override,則無論調用的是A類還是B類中的TEST(),系統(tǒng)都會找到它實質類的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();系統(tǒng)會自動識別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)  編輯  收藏

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


          網站導航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 梓潼县| 丹东市| 石台县| 水富县| 鹤庆县| 澳门| 安宁市| 恩平市| 库尔勒市| 云霄县| 佛山市| 伽师县| 天气| 呼图壁县| 利辛县| 托克托县| 湘潭县| 临武县| 新昌县| 贵阳市| 越西县| 南康市| 康保县| 碌曲县| 宾川县| 汶上县| 察哈| 连江县| 吴旗县| 汾西县| 广宁县| 静宁县| 宁海县| 思南县| 乳源| 大城县| 南京市| 永新县| 乐昌市| 韶关市| 东平县|