- c++ 描述了类的行为和功能,但是不完成类的特定实现。
- c++接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,把细节和相关数据分离开的概念。
- 抽象类只是为了给其他类提供适当的基类,抽象类不能用于实例化对象,只能作为接口使用。如果一个子类需要被实例化,那么就必须实现每一个虚函数。也就必须要实现重写函数。
#include <iostream>
using namespace std;
// 抽象类
class Box{
public:
// 纯虚函数
virtual double getVolume() = 0;
private:
double length;
double breadth;
double height;
};
int main(){
return 0;
}
- 抽象类具体的实例
#include <iostream>
using namespace std;
//基类
class Shape{
public:
// 提供接口,纯虚函数
virtual int getArea()=0;
void setWidth(int width){
this->width = width;
};
void setHeight(int height){
this->height = height;
};
protected:
int width;
int height;
};
// 派生类
class Rectangle:public Shape
{
public:
int getArea(){
return this->width*this->height;
}
};
class Triangle:public Shape{
public:
int getArea(){
return (this->width*this->height)/2.;
}
};
int main(){
Rectangle rect;
Triangle ti;
rect.setWidth(5);
rect.setHeight(7);
cout<<"Total Rectangle area:"<<rect.getArea()<<endl;
ti.setWidth(5);
ti.setHeight(7);
cout<<"Total Triangle area:"<<ti.getArea()<<endl;
return 0;
}