C#中override定义什么?
时间: 2024-10-11 17:17:04 浏览: 41
在 C# 中,`override` 关键字用于声明一个成员(通常是方法或属性)作为对基类(base class)同名成员的覆盖(Overriding)。这意味着在子类(derived class)中提供了一个新的实现,当从子类的对象上调用这个基类的方法时,实际执行的是子类的方法。这是多态的一个重要部分,它允许你在运行时动态地替换行为。
只有在继承上下文中并且基类有相应的方法(通常为 virtual 或 abstract)时,才能使用 override 关键字。覆盖的条件包括:
- 方法的访问修饰符必须与基类中的方法相匹配或更开放。
- 参数列表必须完全匹配。
- 返回类型必须一致。
- 如果基类方法是虚方法(virtual)或抽象方法(abstract),则子类方法需要提供具体的实现。
例子:
```csharp
class BaseClass
{
public virtual void DisplayMessage() => Console.WriteLine("BaseClass Message");
}
class DerivedClass : BaseClass
{
// Override the base method
public override void DisplayMessage() => Console.WriteLine("DerivedClass Message");
}
```
在这个例子中,`DisplayMessage` 在 `DerivedClass` 中被 override,当我们创建 `DerivedClass` 的实例并调用 `DisplayMessage()` 时,会输出 "DerivedClass Message" 而不是 "BaseClass Message"。
阅读全文