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、抽象类被继承的时候,子类必须实现抽象类里面的所有抽象方法
总结
虚方法实际上是面向对象中多态的体现,不同的对象面对同一事物的不同反应,调用基类的虚方法来执行派生类的具体操作,而基类在调用时,并不需要知道派生类是怎么样实现的。
抽象方法就像他的名字一样,只负责“抽象”,具体实现交给子类来完成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)