在 C# 中,可以使用接口来实现多态性吗
时间: 2024-09-06 18:03:02 浏览: 40
在C#中,接口确实可以用来实现多态性。接口提供了一种契约,类需要声明或实现其中的方法来满足该接口。当一个类实现了多个接口,或者继承了一个实现了接口的类时,它可以被认为是实现了那些接口的“混合”,从而可以在运行时表现出多种行为。
例如,假设有一个`IAnimal`接口定义了一些动物共有的行为:
```csharp
public interface IAnimal
{
void Speak();
}
```
然后有`Dog`和`Cat`两个类分别实现这个接口:
```csharp
public class Dog : IAnimal
{
public void Speak() => Console.WriteLine("Woof!");
}
public class Cat : IAnimal
{
public void Speak() => Console.WriteLine("Meow!");
}
```
这时,如果你有一个变量引用了`IAnimal`类型的集合,并存储了`Dog`和`Cat`的对象,那么无论是调用`Speak()`方法,都会根据实际对象的具体类型来执行相应的方法,这就是多态的体现。
阅读全文