虚函数是有代码的并明确允许子类去覆盖,但子类也可不覆盖,就是说可以直接用,不用重写
//虚方法,必须声明主体(默认方法体)可重写可不重写。 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