C# Abstract、Virtual、Interface、Sealed 笔记

    //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)

上一篇:Openwrt路由器上开发微信公众号应用


下一篇:第14章Mixin混入-mixin_animal