本帖最后由 刘景发 于 2011-11-27 18:05 编辑
verride修饰符是覆写的意思,作用覆写一个基类中的方法。
而重载则是将将同名方法重新写过,达到同名的函数实现不同的功能.从而实现了一个方法有不同的版本.
override与重载的区别可以总结为:
overload(重载):特点(两必须,一可以)
方法名必须相同,参数列表必须不同,返回值类型可以不同.
比如说:在构造函数中,由于条件限制有的构造函数需要参数有的不需要,这是用重载最合适了.
override(覆写):特点(三相同)
相同的方法名,相同的参数列表,相同的返回值类型.通过使用override关键字来实现覆写.
类可以重新定义父类的同名虚函数的执行体
派生类中的方法是重写了基类的方法
运行时采用动态绑定的方法
根据对象的类型确定使用的方法
用如下代码表示下两者的区别:
overload在同一个类中具有相同方法(函数)名的不同签名的实现,也就是说方法的名字相同,但参数类型,个数都不相同的(不包括返回类型),如下就是重载
public double GetValue()
{
}
public int GetValue(string s)
{
}
override是在子类中实现父类中的virtual方法(属性也可),或者是abstract方法(属性也可以),如下:
public class A
{
public virtual void SetValue(string str)
{
}
}
public class B:A
{
string mumber;
public override void SetValue(string str)
{
number = str;
}
} |