继承与派生基础概念
面向对象的程序设计主要有四个特点:抽象、封装、继承和多态。其中继承是我认为最最重要的一个特性,可以说继承是面向对象的精华所在。举一个继承的浅显易懂的例子:假如我们已经有了一个“马”的类,其中成员变量有身长、身高、体重等,还有“吃”、“奔跑”等成员函数,现在我们想创建新类”公马“和”母马“,很明显公马母马具有马的所有特征,我们就不需要重新再写,只需要在原有类的基础上增加”性别“这一新特征,即可创建两个新类。同理,白公马、黑公马可以从公马这一个类派生出来,也就是说它可以继承公马的全部特征而加上颜色这一新特征即可。马是公马的基类,公马是白公马的基类,所以我们可以看出基类、派生类都是相对而言的。
一、派生类的声明方式
下面通过刚才举的例子来说明
class horse { public: void eat(); void run(); private: float height; float weight; }; class malehorse:public horse { private: char 易做图; //只写新增加的成员 }; class wh_mhorse:public malehorse { private: char color; }; void horse::eat(){ cout<<"horse eats grass"<<endl; }
派生类声明方式为
class 派生类名 :继承方式 基类名
二、派生类访问属性
首先,继承有三种方式:public、protected、private。想必在刚学C++时大家都有这样的疑惑,感觉protected和private属性是一样的,反正都不能从类外访问。到了这里就有区别了:private是”私有“的,不管何种继承方式基类的私有成员都是基类所私有,派生类不可访问;而基类protected成员随继承方式的不同在派生类中担当不同身份。下面详细介绍一下
(1)共用继承
基类的共有成员和保护成员在派生类中保持原有访问属性,私有成员扔为基类所有。
(2)保护继承
基类的共有成员和保护成员在派生类中成了保护成员。
(3)私有继承
基类的共有成员和保护成员在派生类中成了私有成员。
补充:软件开发 , C++ ,