具体类:可以实例化
抽象类:为子类提供更高层次的抽象,本身不能被实例化
抽象类定义:
1.含一个或多个纯虚函数
2.纯虚函数格式(一定是成员函数)
virtual ReturnType Func(...) [const] =0;
3.纯虚函数访问控制可任意
4.具体类的子类可以是具体类或抽象类,抽象类的子类可以是具体类或抽象类
5.纯抽象类:除静态、构造、析构函数等函数均为纯虚函数
6.纯虚定义:对纯虚函数给出缺省实现(类外)
virtual float Area() const=0 //Shape抽象类中的纯虚函数
float Shape::Area() const {return 0;} //类外的纯虚定义
//子类中若没给出Area()的实现,默认用的是这个
//纯虚定义
c++中接口类:是纯抽象类,通常为public成员,且无任何静态数据成员