日期:2014-05-20  浏览次数:20961 次

那个好心人能告诉我“重载,需要区分overload或者override”是什么意思?
那个好心人能告诉我“重载,需要区分overload或者override”是什么意思?刚开始学重载,没听说过“重载,需要区分overload或者override”,我是新手!大家能不能用 C# 语言讲一下!麻烦大家了啊!! 小弟在这谢谢了啊!!
------最佳解决方案--------------------
overload是重载,一个方法名对应几个不同参数签名的方法。
override是重写,子类覆盖基类虚方法。

“重载,需要区分overload或者override”这个说法是不懂OOP并且学了几天C++的人发明的错误的观点。在C++这样原始的,非原生的OOP语言中,成员函数其实是全局函数+this指针实现的。编译器自动将实例的指针作为一个参数传进去,从这个意义上说,有些人认为override因为具有相同的函数名,并且this指针参数不通,也算重载,但是注意,即便如此,这样理解也是不准确的。
------其他解决方案--------------------
overload和override是两个不同的东西,没有人会搞错。如同你不会分不清座便器和水缸一样。
从不会搞错这一点说,不用区分。从它们不是一个东西的角度说,要区分。
------其他解决方案--------------------
引用:
哦!明白了啊!

1. override(重写)
------------------
使用 override 修饰符来修改方法、属性、索引器或事件。重写方法提供从基类继承的成员的新实现。由重写声明重写的方法称为重写基方法。重写基方法必须与重写方法具有相同的签名。

2. 重载(overload)
------------------
当类包含两个名称相同但签名不同的方法时发生方……

基本上可以这样理解
------其他解决方案--------------------
我还想问一下 :在C#中重载还区分overload或者override,按您这么说是不是不区分啊?
------其他解决方案--------------------
引用:
我还想问一下 :在C#中重载还区分overload或者override,按您这么说是不是不区分啊?

override是重写,overload是重载,什么区分不区分的
------其他解决方案--------------------
那它们是两个不同概念是吗?
------其他解决方案--------------------
这两个就不是一个东西 重载是方法签名不同但是方法名称相同  重写是方法名称和签名都想投但是实现的不同 并且有重写的方法必须是在子类里面
引用:
那它们是两个不同概念是吗?

------其他解决方案--------------------
引用:
那它们是两个不同概念是吗?


只要你写一天程序,这个问题都不是问题。问题是你根本就不在学习,而是作为一个门外汉一样问那些无关痛痒的问题浪费时间。
------其他解决方案--------------------
哦!明白了啊!

1. override(重写)
------------------
使用 override 修饰符来修改方法、属性、索引器或事件。重写方法提供从基类继承的成员的新实现。由重写声明重写的方法称为重写基方法。重写基方法必须与重写方法具有相同的签名。

2. 重载(overload)
------------------
当类包含两个名称相同但签名不同的方法时发生方法重载。


大家看看是不是应该这样解释啊????