继承是面向对象编程语言的最重要特性之一,正确使用继承方便维护和扩展。
保护类数据和成员方法有三种限定符:public,protected和private。
一、向基类的构造函数传递参数
可以通过在派生类的构造函数名后加冒号,基类名和基类构造函数需要的参数,可以在初始化期间对基类进行初始化。
二、覆盖基类函数
在派生类中创建一个返回值和特征值与基类函数相同但实现不同的函数时,被称为覆盖该函数。
特征值是指函数原型出返回类型外的内容,即函数名、参数列表和可能用到的关键字const。
三、隐藏基类的方法
如果基类有个被重载的move方法,而派生类覆盖了该方法,则派生类的move方法将隐藏基类的所有名称为move的方法。
四、调用基类的方法
覆盖基类方法后,仍可以通过限定方法名来调用它,在方法名前加上基类名和两个冒号:
baseClass::Method();
五、私有继承
假设要重用基类baseClass来创建派生类inheritClass。inheritClass只是使用baseClass,该情况适合使用私有继承。
inheritClass派生类可以访问baseClass基类的所有功能 ,但是inheritClass派生类的对象不能访问基类的任何功能,不管使用什么访问限定符。
六、完整示例