1、是一种不能被实例化的类,即不能直接创建抽象类的对象。
抽象类可以有构造函数
抽象类可以包含具体实现的方法和数据成员,这些可以直接在抽象类中定义并供所有子类使用,实现代码复用。
2、目的是为了提供一个基类,定义一组接口(方法声明)让其子类遵循和实现。
这些抽象方法没有具体的实现细节,需要由继承该抽象类的具体子类来提供实现。
如果一个类从抽象类继承,它必须实现所有的抽象方法(除非它自己也声明为抽象类),不是纯虚函数可以不实现,这保证了继承层次结构的统一性。
3、抽象方法通常是以纯虚函数的形式存在,至少包含一个纯虚函数的类就是抽象类。
纯虚函数是在基类中声明的虚函数,声明纯虚函数的方式是在函数声明后面加上 = 0。
如:
class AbstractClass {
public:
virtual void someFunction() = 0; // 纯虚函数
};