抽象类:
抽象类使用关键字abstract修饰,是一种特殊的类,不能实例化对象,且不能直接调用(区分静态类)
抽象类中可以定义抽象方法(也用关键字abstract修饰),也可不定义任何抽象方法,但抽象方法必须定义在抽象类里
抽象方法只有方法声明,不含有任何方法体,如:public string GetName();
抽象方法必须在子类中被重写,通过关键字overwrite
抽象方法是一种隐式虚方法
子类必须重写全部抽象方法,除非子类也是抽象类
虚方法:
虚方法用关键字virtural修饰,与静态方法不通的是,虚方法必须有方法体
虚方法可在子类中重写或不重写(这也是上面必须有方法体的原因)
虚方法定义是方便在子类中重写