目录:
定义-替代是什么意思?
在C#中,Override是一个关键字,用于用派生类中该成员的定义替换基类中定义的虚拟成员。
覆盖修饰符允许程序员指定从基类继承的现有虚拟成员的专业化,以在派生类中提供该成员的新实现。 它可以与方法,属性,索引器或需要在派生类中进行修改或扩展的事件一起使用。
覆盖修饰符旨在实现C#中的多态性概念。
覆盖与新修饰符的不同之处在于,前修饰符仅用于覆盖基类的虚拟成员,而后者还通过隐藏基类中包含的定义来帮助覆盖基类中定义的非虚拟成员。
技术百科解释了覆盖
重写主要在虚拟方法的上下文中使用,在虚拟方法中,方法类型的执行由调用该方法的实例的运行时类型决定。 在调用过程中,调用者不必知道被调用对象是派生类的实例。
例如,如果Shape是一个基类,它提供了该类的所有对象通用的基本实现,则可以使用虚拟方法CalculateArea对其进行定义。 Square可以是从Shape派生的类,该类可以重写CalculateArea方法以实现计算正方形面积所需的逻辑。
要覆盖派生类中的方法:
- 基类中的方法必须使用virtual修饰符声明。
- 基类中的方法可以是抽象的,但不能是静态的。
- 基类和派生类中方法的访问修饰符应相同。
- 在派生类和基类中,应使用相同的签名定义该方法。
