浅谈C# 虚函数
一、基本介绍
虚函数是一种在基类中声明并在派生类中重写的方法。通过使用关键字 virtual
,可以定义虚函数。派生类可以根据需要重写虚函数,以提供不同的实现。
虚函数的主要目的是实现多态性。在程序运行时,通过基类的引用或指针调用虚函数时,将根据实际对象类型执行相应的派生类方法。
定义虚函数
在C#中,你可以通过使用 virtual
关键字来定义一个虚函数。这意味着该方法可以在派生类中被重写。
public class BaseClass
{
public virtual void Display()
{
Console.WriteLine("Display method of BaseClass");
}
}
重写虚函数
在派生类中,你可以使用 override
关键字来重写基类中的虚函数。
public class DerivedClass : BaseClass
{
public override void Display()
{
Console.WriteLine("Display method of DerivedClass");
}
}
调用虚函数
当你创建派生类的对象并调用虚函数时,将根据对象的实际类型调用相应的方法。
BaseClass obj = new DerivedClass();
obj.Display(); // 输出 "Display method of DerivedClass"
密封虚函数
如果你不希望派生类重写某个虚函数,可以使用 sealed
关键字。
public class BaseClass
{
public virtual void Display()
{
Console.WriteLine("Display method of BaseClass");
}
}
public class DerivedClass : BaseClass
{
public sealed override void Display()
{
Console.WriteLine("Display method of DerivedClass");
}
}
虚函数和抽象类
虚函数通常与抽象类一起使用,抽象类是不能被实例化的类,它包含至少一个抽象方法。抽象方法是一种没有实现的方法,它必须在派生类中被重写和实现。
public abstract class BaseClass
{
public abstract void Display();
}
public class DerivedClass : BaseClass
{
public override void Display()
{
Console.WriteLine("Display method of DerivedClass");
}
}
使用虚函数和重写是实现多态性的关键技术,它允许你在运行时根据对象的实际类型调用最合适的方法。