0和1的世界
这个世界不会在乎你的自尊,它期望你做出成绩,再去强调自己的感受!
原文见:http://www.ccw.com.cn/applic/prog/htm2003/20030307_15R13_4.htm(在网上多有转载)
文中提及:  
      在派生类中重新定义基类的虚函数时,要求的是方法名称,返回值类型、参数表中的参数个数、类型顺序都必须与基类中的虚函数完全一致。在派生类中声明对虚方法的重载,要求在声明中加上override 关键字,而且不能有new, static 或virtual 修饰符。

  但是我知道:方法的重载(Method overload)指不同版本的方法(该方法可以在同一个类中实现,也可以分别在基类和派生类中实现)名称可以一样,但是签名不同(指参数名称,参数类型,参数个数). 在引文中也有提及. 
   顺带一点:要判断某方法是否重载,不能仅仅有下面两点做为标准:一:不同版本的方法不能仅在返回类型上有所区别.二:也不能仅根据参数是申明为ref还是out来区分。
方法的重写(有的称方法的覆盖)是指:在基类中申明为virtual的函数,可以在派生类中通过override关键字来重写该方法,它要求派生类的该方法签名必须和基类方法相同。从而实现了C#中多态性的功能,达到代码重用的目的。

基于此:方法的重载和方法的重写是两个不同的概念。引文中重载应改为重写,我想这应该不是咬文嚼字吧。:-)
posted on 2005-05-01 11:35  风过无痕  阅读(884)  评论(0)    收藏  举报