继承和派生
派生的格式:
class 派生类名:继承方式 基类名
{派生类中的新成员}
例:
class Master:public Student
{ ................................. }
继承方式有三种:
公有继承:public
私有继承:private
保护继承:protected
派生类对象由两部分组成:
一部分是由基类继承的成员,另一部分是派生类新增加的自己特有的成员。
当类的继承方式为公有继承时,基类 的公有和保护成员的访问属性在派生类中不变,而基类的私有成员不可访问。
在C++中,类是提供封装的逻辑单位,类的每一个对象都包含有描述其自身状态的数据集合,并且通过接收特定的消息来处理这个数据集合。如果程序设计人员能够通过增加、修改或替换指定类的部分内容的方法对该类进行剪裁,就可以适应不同的应用,从而在很大程度上增强了数据封装的价值,而接下来要讨论的继承就完全可以实现这种操作。
保持已有类的特性而构造新类的过程称为继承。
在已有类的基础上新增自己的特性而产生新类的过程称为派生。
被继承的已有类称为基类(或父类)。
派生出的新类称为派生类。
里氏代换原则:
在软件里面,把基类都替换成它的子类,程序的行为没有变化
从继承的访问规则,看类中保护成员的特征:
类A含有保护成员,对于建立A类对象的函数而言,保护和私有成员一样不可访问。
若A类派生出子类,则对该子类而言(在该子类内部),基类的保护和公有成员具有相同的访问特性。
C++通过protected访问权限提供了一种有条件地打破封装的机制,即只向自己的后代开放数据成员的访问权限。