1、虚函数——>实现多态,(动态编译)
2、纯虚函数——> 是一种特殊的虚函数,它的一般格式如下:
class <类名>
{
virtual <类型> <函数名>( <参数表>)=0;
…
};
3、抽象类——>是带有纯虚函数的类。抽象类是一种特殊的类,它是为了抽象和设计的目的而建立的,它处于继承层次结构的较上层。抽象类是不能定义对象的,在实际中为了强调一个类是抽象类,可将该类的构造函数说明为保护的访问控制权限。
抽象类的主要作用是将有关的组织在一个继承层次结构中,由它来为它们提供一个公共的根,相关的子类是从这个根派生出来的。
虚函数是为实现多态机制而标识,纯虚函数一种特殊的虚函数,没有进行具体的实现,抽象类是建立在带有纯虚函数的类。抽象类是为了抽象和设计的目的而建立的,也不能在调用时定义对象的;
抽象类是用来定义接口的;
比如我有一个基类,叫水果,他派生出来一个苹果,一个草莓。
我把基类定义成一个抽象类,那么它就不能用来生成对象,因为大家都知道,在现实中,是不会有“水果”这么个东西的。