//1、接口是一种行为规范 //2、接口提供供方法规约,不提供方法体 //3、接口不能用关键字修饰 //4、接口里不能有接口和变量 //5、接口里的方法在子类(派生类)中必须全部实现 //6、接口可以实现多重继承 public interface ITest { void mtd0(); } //抽象类是一个不完全的类,是对对象的抽象 public abstract class Test1 : ITest { public void mtd0() { } //抽象方法必须override(重写),抽象方法不能有方法体,抽象方法只能存在于抽象类中 public abstract void mtd1(); public abstract int mtd2(); //虚方法可以但不必重写,且要有方法体,除sealed类(密封类,不允许被继承)都可以存在,不能与static、abstract、private、override修饰符一起使用 public virtual string mtd3(string a) { return a; } } public class Test2 : Test1 { public override void mtd1() { } public override int mtd2() { return 1; } public override string mtd3(string a) { return base.mtd3(a); } }
参考文献:
C#中的Abstract、Virtual、Interface理解 - GavinJune - 博客园 (cnblogs.com)
C#中interface、Virtual、abstract、Override的用法总结 - chuncn - 博客园 (cnblogs.com)