用如下代码表示下两者的区别:
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;
}
} 作者: 王龙彪 时间: 2012-7-20 01:41
重写就是覆盖,要跟父类中返回值,参数都必须一样.
重载就是在一个类当中,不同参数类型,不同参数数量的同名函数
两者关系不大作者: 周坤 时间: 2012-7-20 02:07
方法覆盖,子类沿袭父类的方法。静态只能覆盖静态,
方法覆盖,子类方法的权限必须大于等于父类的权限,才可以覆盖。
重载只看同名函数的参数列表。
重写子父类方法要一模一样。 作者: 王宝康 时间: 2012-7-20 02:32
方法重载(overload):对于类的方法(包括从父类继承的方法),如果有两个方法的方法名相同,但参数不一致,那么可以说,一个方法是另一个方法的重载方法。
重载满足以下条件:
方法名相同
方法的参数类型、个数、顺序至少有一项不相同
方法的返回类型可以不同
方法的修饰符可以不同