本帖最后由 刘景发 于 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;   
   } 
}  |