C# 中的多态性是通过继承和接口实现的。多态性允许一个对象以多种形式表现,即一个对象可以表现出父类的行为,也可以表现出子类的行为。
在 C# 中,多态性的实现主要依靠以下两种方式:
class Animal
{
public virtual void MakeSound()
{
Console.WriteLine("Animal makes sound");
}
}
class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("Dog barks");
}
}
Animal animal = new Dog();
animal.MakeSound(); // 输出:Dog barks
interface IShape
{
void Draw();
}
class Circle : IShape
{
public void Draw()
{
Console.WriteLine("Circle is drawn");
}
}
class Square : IShape
{
public void Draw()
{
Console.WriteLine("Square is drawn");
}
}
IShape shape = new Circle();
shape.Draw(); // 输出:Circle is drawn
shape = new Square();
shape.Draw(); // 输出:Square is drawn
通过重写和接口的方式实现多态性,可以使代码更加灵活和可扩展,同时提高代码的复用性和可维护性。