c#中new和override的区别
2013-03-02 02:17
295 查看
c#中new和override的区别
问题补充:
例如: A类 有方法 public virtual void test() B类继承自A类,有方法 public new void test() 如下实例化: A a = new B(); a.test(); 会调用哪个类中的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();//与上面相同
相关文章推荐
- C#中new和override区别
- C#中重写(override)和覆盖(new)的区别
- C#中new和override的区别
- c#中new和override的用法区别
- C#中重写(override)、覆盖(new)、虚拟(Virtual)关键字的区别
- C#中重写(override)和覆盖(new)的区别
- c#中隐藏(new)和方法重写(override)和重写(overload)的区别
- c#中override与new的区别_谷歌先生-ChinaUnix博客
- C# new virtual override 之间的区别
- c#的new、abstract、virtual、override,sealed关键字区别
- C#中子类对父类中虚方法的处理有重写(override)和覆盖(new),他们有什么区别?
- c# new and override区别
- 浅析C# new 和Override的区别
- 【经典】C#中隐藏(new)、方法重写(override)、重载(overload)的区别
- C#中的三个关键词new , virtual , override的区别
- C#中override和new的区别
- C# virtual override abstract new区别
- C# 基础 new 、override实现多台区别
- [黑马程序员]关于C#中的重载、override和new区别
- C# 中virtual,override,new 的区别与用法(转载)