override和overload的区别(C#) (转)

越来越发觉我目前还很无知。。。区别如下:

override表示“重写”,用于继承一个基类的时候,基类当中虚拟成员的实现。

overload表示“重载”,用于同一类中同名方法但参数个数或类型不同的实现,也就是让方法有不同签名的版本。

ebreezee 发表于:2007.12.02 22:05 ::分类: ( C# ) ::阅读:(184次) :: 评论 (3)
re: override和overload的区别(C#) [回复]

override译作覆盖,用于继承一个基类时,对基类的非虚方法的重新实现,如果是虚方法,则是多态。两者完全不同。
对于使用基类型指针或是引用来调用方法,如果是覆盖,其调用关系在编译期间就已经确定,而对于多态,则是后期联编,在运行时根据动态类型来确定。
overload重载的说法基本正确

 
ebreezee 评论于: 2008.03.05 21:28
re: override和overload的区别(C#) [回复]

再次补充一下:
override 可译作“重写”(参考《C#高级编程》)或“覆写”。和overload的主要区别是:
override overload
方法名 必须相同 必须相同
参数列表 必须相同 必须不同
返回值 必须相同 可以不同
override用于继承类,overload用于同一个类中。

posted @ 2008-05-01 11:43  程序猿101  阅读(3097)  评论(0编辑  收藏  举报