override和重载的区别?

  • Post author:
  • Post category:其他


override和重载的区别?

重载应该叫overload,重写叫override

重载某个方法是在同一个类中发生的!

重写是在子类中重写父类中的方法。

1.

父类:public virtual string ToString(){return “a”;}

子类:public override string ToString(){return “b”;}

2.

同一类中或父子关系类中皆可:

public string ToString(){return “a”;}

public string ToString(int id){return id.ToString();}

override是用于重写基类的虚方法,这样在派生类中提供一个新的方法

重载是提供了一种机制, 相同函数名通过不同的返回值类型以及参数来表来区分的机制


1. override

———–

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

不能重写非虚方法或静态方法。重写基方法必须是虚拟的、抽象的或重写的。

也就是说,用 override 修饰符重写的基类中的方法必须是 virtual, abstract 或 override 方法。

2. 重载

——-

当类包含两个名称相同但签名不同的方法时发生方法重载。

使用重载方法的指南:

a. 用方法重载来提供在语义上完成相同功能的不同方法。

b. 使用方法重载而不是允许默认参数。默认参数的版本控制性能不好,因此公共语言规范(CLS)中不允许使用默认参数。

c. 正确使用默认值。在一个重载方法系列中,复杂方法应当使



版权声明:本文为songxinyue原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。