类具有三个特性,封装,继承和多态。
在之前我们了解到类的封装特性,可以使用权限的限定来限制类的成员和属性的使用方法。将其作为一个类别封装出来,在使用的时候将其具体化即可。
本次开始了解类的继承。
在编写程序的时候,如果之前已经手写出一个矩形的类,此时还另外需要封装一个正方体的类。不难发现,在此时,矩形的属性和行为都是可以直接搬到正方体的类中的,只需要在原有的类的基础上进行属性和行为的添加即可。
此时,可以采用将矩形类的属性和行为全部复制到正方体的类中,再进行添加。但是,这样就会让后续的类变得庞大起来时十分的麻烦。因此,C++提供的继承的方法。具体如下:
#include <iostream>
using namespace std;
class Rect {
public:
int x;
int y;
int width;
int height;
Rect() {
x = 0;
y = 0;
width = 100;
height = 100;
}
void show() {
cout << "x:" << x << " "
<< "y:" << y << " "
<< "w:" << width << " "
<< "h:" << height << endl;
}
};
class Square :public Rect {
public:
int area() {
int area = width * height;
return area;
}
};
int main() {
Square square;
square.show();
cout << square.area() << endl;
return 0;
}
在上面的代码中,Square类通过public继承Rect后,在Square中就存在了有关于Rect的所有的属性和行为,对于这些属性和行为就可以进行调用。
继承的方式有很多种,public为共有继承,除此之外还存在私有和保护继承,本次不对此做深入的了解。
通常情况下,继承都会使用public的方式来继承。