C#抽象修饰符abstract、virtual虚拟修饰符和override重写修饰符
抽象类:
抽象类使用关键字abstract修饰,是一种特殊的类,不能实例化对象,且不能直接调用(区分静态类)
抽象类中可以定义抽象方法(也用关键字abstract修饰),也可不定义任何抽象方法,但抽象方法必须定义在抽象类里
抽象方法只有方法声明,不含有任何方法体,如:public abstract string GetName();
抽象方法必须在子类中被重写,通过关键字overwrite
抽象方法是一种隐式虚方法
子类必须重写全部抽象方法,除非子类也是抽象类
虚方法:
虚方法用关键字virtual修饰,与抽象方法不通的是,虚方法必须有方法体
虚方法可在子类中重写或不重写(这也是上面必须有方法体的原因)
虚方法定义是方便在子类中重写
override:
override只能用来重写virtual, abstract, 或 override的被重新属性或方法
博客备忘,一起成长。