c#中override
时间: 2024-06-14 11:08:24 浏览: 156
在C#中,`override`关键字用于在派生类中重写基类中的虚方法、属性或索引器。通过使用`override`关键字,我们可以在派生类中提供自己的实现,覆盖基类中的默认实现。
要使用`override`关键字,需要满足以下条件:
1. 基类中的方法、属性或索引器必须被声明为`virtual`或`abstract`。
2. 派生类中的方法、属性或索引器必须具有相同的名称、返回类型和参数列表。
下面是一个示例,演示了如何在派生类中使用`override`关键字来重写基类中的虚方法:
```csharp
class Animal
{
public virtual void MakeSound()
{
Console.WriteLine("The animal makes a sound");
}
}
class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("The dog barks");
}
}
class Program
{
static void Main(string[] args)
{
Animal animal = new Animal();
animal.MakeSound(); // 输出: The animal makes a sound
Dog dog = new Dog();
dog.MakeSound(); // 输出: The dog barks
Animal animalDog = new Dog();
animalDog.MakeSound(); // 输出: The dog barks
}
}
```
在上面的示例中,`Animal`类中的`MakeSound`方法被声明为`virtual`,表示它可以被派生类重写。`Dog`类继承自`Animal`类,并使用`override`关键字重写了`MakeSound`方法。在`Main`方法中,我们创建了一个`Animal`对象和一个`Dog`对象,并分别调用它们的`MakeSound`方法。由于`Dog`类重写了`MakeSound`方法,所以在调用`dog.MakeSound()`时输出的是"The dog barks"。
此外,还可以使用`override`关键字重写基类中的属性和索引器。重写属性和索引器的语法与重写方法类似。
希望这个例子能够帮助你理解`override`关键字在C#中的用法。
阅读全文