在C#中,調用約定是指在多態關系中確定哪個方法會被調用的規則。C#中常見的調用約定有虛方法、抽象方法和接口方法。
class Animal
{
public virtual void Speak()
{
Console.WriteLine("Animal speaks");
}
}
class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("Dog barks");
}
}
Animal myDog = new Dog();
myDog.Speak(); // 輸出 "Dog barks"
abstract class Shape
{
public abstract void Draw();
}
class Rectangle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing rectangle");
}
}
Shape shape = new Rectangle();
shape.Draw(); // 輸出 "Drawing rectangle"
interface IShape
{
void Draw();
}
class Circle : IShape
{
public void Draw()
{
Console.WriteLine("Drawing circle");
}
}
IShape shape = new Circle();
shape.Draw(); // 輸出 "Drawing circle"
總結來說,在多態關系中,C#會根據實例的具體類型來確定調用哪個方法,從而實現不同類型的對象可以具有不同的行為。通過虛方法、抽象方法和接口方法,可以靈活地實現多態性。