new 是新創(chuàng)建,override是重載已經(jīng)有的
看下面例子大家就知道了
A類(lèi) 有方法 public virtual void test()
B類(lèi)繼承自A類(lèi),有方法 public new void test()
如下實(shí)例化:
A a = new B();
a.test();
如果你用override,則無(wú)論調(diào)用的是A類(lèi)還是B類(lèi)中的TEST(),系統(tǒng)都會(huì)找到它實(shí)質(zhì)類(lèi)的TEST();
如果是用的New,則可以通過(guò)類(lèi)型轉(zhuǎn)換調(diào)用到基類(lèi)的TEST();
下面是override的情況:
A a = new A();
B b = new B();
A a1=new B();
a.Test();//調(diào)用A中Test();
b.Test();//調(diào)用B中Test();
a1.Test();//調(diào)用B中Test();系統(tǒng)會(huì)自動(dòng)識(shí)別a1是B的實(shí)例
((A)b).Test();//與上面相同
下面是new的情況:
A a = new A();
B b = new B();
A a1=new B();
a.Test();//調(diào)用A中Test();
b.Test();//調(diào)用B中Test();
a1.Test();//調(diào)用A中Test();
((A)b).Test();//與上面相同
如果是new呢 對(duì)象是父類(lèi)的就調(diào)用父類(lèi)的方法
是子類(lèi)的對(duì)象就調(diào)用子類(lèi)的方法
如果把子類(lèi)強(qiáng)制轉(zhuǎn)換成父類(lèi)
那么對(duì)象也調(diào)用父類(lèi)的方法
posted on 2009-02-24 16:33
sanmao 閱讀(119)
評(píng)論(0) 編輯 收藏