在C++语言中,抽象类是一种特殊的类,它没有实现任何实际的代码,而是提供一个接口供其他类去实现。抽象类可以用来实现接口,它的实现方式比较特殊,可以让子类重写抽象类中的某些方法,从而实现接口的功能。
使用抽象类实现接口的方法
1. 定义一个抽象类,在抽象类中声明所有的接口方法,但不实现任何方法,这些方法都是纯虚函数,抽象类中可以定义一些公共的属性和方法,这些属性和方法可以被子类继承。
class AbstractClass{ public: virtual void method1() = 0; virtual void method2() = 0; //其他公共方法 void commonMethod(){ //实现 } };
2. 定义子类,继承抽象类,重写抽象类中的接口方法,并实现接口的功能。
class SubClass : public AbstractClass{ public: void method1(){ //实现method1的功能 } void method2(){ //实现method2的功能 } };
3. 创建子类的对象,使用抽象类中定义的公共方法和接口方法。
SubClass subClass; subClass.method1(); subClass.method2(); subClass.commonMethod();
注意事项
- 抽象类不能被实例化,只能被继承,并且子类必须实现抽象类中的接口方法。
- 抽象类可以包含构造函数,析构函数,友元函数,静态成员变量和静态成员函数,但不能包含实例变量和实例函数。
- 抽象类可以定义纯虚函数,也可以定义非纯虚函数,但是子类可以重写父类的非纯虚函数。