抽象类的概念(抽象方法)
- 包含一个或多个抽象方法的类就是抽象类,抽象方法为类的成员函数,但不可以是构造和析构函数。
- 成员函数前面加上关键字virtual,该方法就成为抽象方法。
- 抽象类的扩展性特别强,以桂老师的话:抽象基类的方法是以不变应万变。具体是,在抽象基类中定义的抽象方法,在基类中不必实现,而是在派生类中进行实现。
抽象类的行为
- 抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法;
- 抽象基类中的抽象方法(成员被virtual关键字修饰,即成为抽象方法)是写给编译器看的,以便在子类中进行实现,重写;如果基类中的某A方法没有被声明为抽象方法,那么在其子类中重载该A方法,可能会得不到想要的上述多态效果;
- 抽象类不能直接实例化,要通过其子类进行实例化。