使用重载方法的指南:
a. 用方法重载来提供在语义上完成相同功能的不同方法。
b. 使用方法重载而不是允许默认参数。默认参数的版本控制性能不好,因此公共语言规范(CLS)中不允许使用默认参数。
c. 正确使用默认值。在一个重载方法系列中,复杂方法应当使用参数名来指示从简单方法中假定的默认状态发生的更改。
d. 对方法参数使用一致的排序和命名模式。提供一组重载方法,这组重载方法带有递增数目的参数,以使开发人员可以指定想要的级别的信息,这种情况很常见。您指定的参数越多,开发人员就可指定得越详细。
e. 如果必须提供重写方法的能力,请仅使最完整的重载是虚拟的并根据它来定义其他操作。
// 下面具体解释一下这种模式,只有最后一个方法(参数最完整的方法)是虚方法,在继承了这个类的子类中只要重写(override)这个方法就行了。
public class SampleClass
{
private string myString;
public MyClass(string str)
{
this.myString = str;
}
public int IndexOf(string s)
{
return IndexOf (s, 0);
}
public int IndexOf(string s, int startIndex)
{
return IndexOf(s, startIndex, myString.Length - startIndex );
}
public virtual int IndexOf(string s, int startIndex, int count)
{
return myString.IndexOf(s, startIndex, count);
}
}作者: 侯慧杰 时间: 2012-7-8 16:59
override是对父类方法的重写即对父类方法的覆盖,重载是具有相同函数名不同参数的多个方法,用户调用的时候可以根据用户传递的参数类型或参数个数来确定具体调用哪个方法作者: 魏振龙 时间: 2012-7-8 18:36
override修饰符,覆写一个基类中的方法
重载则是将同名方法重新写过,达到同名的函数实现不同的功能.从而实现了一个方法有不同的版本.
override与重载的本质区别是,加入了override的修饰符的方法,此方法始终只有一个被你使用的方法 作者: 文硕 时间: 2012-7-8 18:59
重载是方法的名称相同,参数或参数类型不同,进行多次重载以适应不同的需要。
Override 是进行基类中函数的重写。
重载(overload)是面向过程的概念。
Override 是面向对象的概念。