在实际应用中,子类仅能重写父类中的虚方法或者抽象方法,当不需要使用父类中方法的内容时,将其定义成抽象方法,否则将方法定义成虚方法。
抽象类"一个包含一个或多个纯虚函数的类叫抽象类,抽象类不能被实例化,进一步
一个抽象类只能通过接口和作为其它类的基类使用."
一个抽象类可以包含抽象和非抽象方法,当一个类继承于抽象类,那么这个派生类必须实现所有的
的基类抽象方法。
但是通过声明派生类也为抽象,我们可以避免所有或特定的虚方法的实现,
这就是抽象类的部分实现。
看起来很高深?事实上抽象类就是一个提供了有部分没有方法体的函数和有具体实现的函数的集合。它相比于接口毫无实现而言,抽象类可以提供非抽象的方法,也就是说,抽象类中可以含有有实现方法的函数。
看这个例子
public abstract class A { public void GetSomeThing() { //todo } public abstract void SetSomeThing(); } public class B:A { //实现抽象方法 public override void SetSomeThing() { //调用非抽象方法 base.GetSomeThing(); } }这里面涉及到了base关键字以及":"继承符号,在后面的继承、多态的课程有会有更加深入的介绍。