浅谈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");
    }
}

使用虚函数和重写是实现多态性的关键技术,它允许你在运行时根据对象的实际类型调用最合适的方法。

你可能感兴趣的:(C#,c#,开发语言)