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呢 对象是父类的就调用父类的方法
是子类的对象就调用子类的方法
如果把子类强制转换成父类
那么对象也调用父类的方法
 
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号