C# 虚方法、抽象方法

一、虚方法(virtual)

作用:当类中的函数需要在子类中重写时,可以使用虚方法。

示例:

复制代码
 class Person
    {
        public virtual void XXX()
        {
            Console.WriteLine("我有一个梦想,那就是动身去往远方!!");
        }
     }
     class Boy : Person
    {
        public override void XXX()
        {
            Console.WriteLine("我不想继承父类的虚方法");
        }
         public void SSS()
        {
            Console.WriteLine("不学习就不会进步,不仅不就没有出人头地的机会");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person();//实例化的虚方法类
            Boy boy = new Boy();//实例化的子类
            boy.XXX();//调用了子类的方法
            boy.SSS();
            Console.ReadLine();
        }
    }
复制代码

注意事项

1、当父类中有需要子类重写的方法,则可将该方法标记为virtual。

2、虚方法必须在父类中有实现或者空实现。

3、子类可以选择继承(不重写)父类的功能,也可以选择不继承(重写)。

 

二、抽象方法(abstract)

作用:子类继承抽象类,子类必须实现抽象类的抽象方法,因为抽象方法不能有任何实现。

示例:

复制代码
///抽象类
public abstract class AbsParent
{
    ///抽象方法
    public abstract void AbsTest();
 
}

 public class AbsChild: AbsParent
{
   public override void AbsTest()
{
//实现抽象类
//无法使用base.AbsTest()
}
}

 
复制代码

注意事项

1、抽象方法不能实现。

2、抽象方法必须放在抽象类中

3、抽象方法不能是私有的

4、抽象类被继承的时候,子类必须实现抽象类里面的所有抽象方法

 

总结

虚方法实际上是面向对象中多态的体现,不同的对象面对同一事物的不同反应,调用基类的虚方法来执行派生类的具体操作,而基类在调用时,并不需要知道派生类是怎么样实现的。

抽象方法就像他的名字一样,只负责“抽象”,具体实现交给子类来完成。

 

posted @   Darius丶段  阅读(1838)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示