继承
继承是什么?
继承是c++的三大特性之一继承。
那么继承有什么作用?
继承可以提高我们代码的复用性。既然是复用,简单来说就是重复利用。
再举一个重复利用的例子ctrl+c,ctrl+v,也是重复利用,其实复用你也可以这么理解,我们就是把将这个复制粘贴变得高级了,加了一些条条框框了而已。记住这个 “复制粘贴” ,后面讲对象模型的啥时候我们会用上。
那么我们来举一个例子就能理解如何复用:
看这张图片,猫和狗都是继承于动物这个类上面,猫下面又有个中猫继承于猫这个大类,但是每种猫又有自己的特性。接下来我们用代码来演示一下
继承的语法
class 子类的名字:继承方式 继承的类的名字,子类也可以叫做派生类,父类也可以叫做基类。
继承方式我们留在下一篇文章来讲解,本片文章我们都是公共继承。不涉及继承方式的讲解。
#include <iostream>
#include <string>
using namespace std;
class animal
{
public:
void animal_fun1()
{
cout << "我属于胎生动物,不属于卵生动物" << endl;
}
void animal_fun2()
{
cout << "我们都有鼻子,眼睛,耳朵,腿,肚子,内脏" << endl;
}
int year;//我们都有我们的年龄
};
class cat :public animal
{
public:
void cat_fun1()
{
cout << "我们都是猫,我们都喜欢吃耗子" << endl;
}
string eye_color;
};
class dog :public animal
{
public:
void dog_fun1()
{
cout << "我们都是狗我们都是人类的好朋友" << endl;
}
};
class jiafeimao :public cat
{
public:
void jiafei()
{
cout << "我很胖" << endl;
}
};
int main()
{
jiafeimao p;
p.eye_color = "黄色";
p.year = 10;
p.animal_fun1();
p.animal_fun2();
p.cat_fun1();
p.jiafei();
cout << "p眼睛的颜色是" << p.eye_color << endl;
cout << "p的年龄是" << p.year << endl;
}
看看代码运行结果:
我们这个代码最后创建的是一个jiafeimao(加菲猫)的对象,加菲猫这个类继承于猫类,猫类继承于动物这个类。所以我们的p这个对象可以调用动物和猫这里面的函数。是不是和上面我们说的复制粘贴很像?就相当于把这些函数复制在了jiafeimao这个类里面。但是我们说了需要加一些条条框框规则,接下来的文章将会详细讲解继承的规则等等。