虚函数是有代码的并明确允许子类去覆盖,但子类也可不覆盖,就是说可以直接用,不用重写
//虚方法,必须声明主体(默认方法体)可重写可不重写。 public class A { public virtual void a() { Console.WriteLine("虚函数a"); } public virtual void a1() { Console.WriteLine("虚函数a1"); } }
抽象函数是没有代码,子类继承后一定要重写
//抽象方法,无主体,必须继承重写 public abstract class B { public abstract void b(); }
继承重写
public class C:A { public override void a() { base.a(); Console.WriteLine("重写虚函数a"); } } public class D:B { public override void b() { Console.WriteLine("重写抽象方法b"); } }
主函数调用
C c=new C(); D d=new D(); c.a(); c.a1();//继承了父类a中的a1()方法; d.b(); Console.ReadLine();
本文来自博客园,作者:阿霖找BUG,转载请注明原文链接:https://www.cnblogs.com/lin-07/p/17589110.html
【推荐】国内首个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)