new更新C#继承中的虚函数
2006-08-01 10:14
417 查看
通常情况下,base class定义一个virtual method,在derived class中override虚函数,将使新的类中的同名函数定义为自己的函数.
但如果想在继承的中途改变基类的虚函数,可以在derivedC2用如public new virtual void...(new关键字)进行定义同名函数,则后面由此类继续的类中,覆写同名函数的基虚函数为更新后的.
而由于derived classes无论是从base class还是从derivedC2中继承,它们的ancestor都是base class(因为derivedC2显然是从base class中派生),故如果写:
baseClass obj = new derivedC2()
obj不认得derivedC2中全新的虚函数,所以obj还是调用baseClass的基虚函数.而如果在derivedC2中是简单覆写的话(通常情况下是这样的),则我们知道是应该调用derivedC2定义的函数的.
但如果想在继承的中途改变基类的虚函数,可以在derivedC2用如public new virtual void...(new关键字)进行定义同名函数,则后面由此类继续的类中,覆写同名函数的基虚函数为更新后的.
而由于derived classes无论是从base class还是从derivedC2中继承,它们的ancestor都是base class(因为derivedC2显然是从base class中派生),故如果写:
baseClass obj = new derivedC2()
obj不认得derivedC2中全新的虚函数,所以obj还是调用baseClass的基虚函数.而如果在derivedC2中是简单覆写的话(通常情况下是这样的),则我们知道是应该调用derivedC2定义的函数的.
相关文章推荐
- C#继承中virtual、override、new的使用
- C#继承之base,virtual,override,abstract,new,sealed关键字
- C#继承中abstract、virtual、override和new
- 20151024_004_C#基础知识(C#中的访问修饰符,继承,new关键字,里氏转换,is 和 as,多态,序列化与反序列化)
- C#继承之base,virtual,override,abstract,new,sealed关键字
- C# 继承与多态,相关关键字virtual、override、new
- C++ FAQ Lite[20]--继承(虚函数)(更新)
- C#继承/this/base/new
- C#面向对象1 类 以及 类的继承(new、ovverride)
- C# Tips:在继承中,new 与 override 的区别
- C#基础(14)——继承、new
- c# 继承 virtual override new
- C#继承---基类虚方法virtual,派生类隐藏方法new
- 转:C#继承之base,virtual,override,abstract,new,sealed关键字
- c#学习笔记三:继承、虚函数
- C# 继承,虚方法,new
- 20151024_004_C#基础知识(C#中的访问修饰符,继承,new关键字,里氏转换,is 和 as,多态,序列化与反序列化)
- c# 继承,多态,new /overrid 区别, 引用父类的方法
- unity lua热更新之 利用lua的table实现c#的new对象
- Head First C# 中文版 图文皆译 第六章 继承 page215