保护继承 和 各类继承关系的属性(图)
2010-08-26 04:57
99 查看
保护继承是私有继承的变体(使用关键字protected):
class student: protected std::string,protected std::valarray<double>
{...};
使用保护继承时,基类的公有成员和保护成员都将成为派生类的保护成员。基类的接口在派生类中也是可用的,但在继承层次结构之外是不可用的。
当从派生类派生出另一个类时,使用私有继承时,第三代类将不能使用基类的接口,这是因为基类的公有方法在派生类中将变成私有方法;使用保护继承时,基类的公有方法在第二代中将变成受保护的,因此第三代派生类可以使用它们。
下图总结了公有、私有和保护继承。隐式向上转换(implicit upcasting)意味着无需进行显示类型转换,就可以将基类指针或引用指向派生类对象。
class student: protected std::string,protected std::valarray<double>
{...};
使用保护继承时,基类的公有成员和保护成员都将成为派生类的保护成员。基类的接口在派生类中也是可用的,但在继承层次结构之外是不可用的。
当从派生类派生出另一个类时,使用私有继承时,第三代类将不能使用基类的接口,这是因为基类的公有方法在派生类中将变成私有方法;使用保护继承时,基类的公有方法在第二代中将变成受保护的,因此第三代派生类可以使用它们。
下图总结了公有、私有和保护继承。隐式向上转换(implicit upcasting)意味着无需进行显示类型转换,就可以将基类指针或引用指向派生类对象。
相关文章推荐
- C++ 保护,私有继承,公有继承 ---访问属性--关系
- Java继承中属性、方法和对象的关系
- 详解Java继承中属性、方法和对象的关系
- python继承关系中,类属性的修改
- 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试
- UINavigationController和UITabBarController的属性之间的一些继承关系
- Java继承中属性、方法和对象的关系
- PHP面向对象笔记 —— 119 公共及保护属性和方法的继承
- Java继承中属性、方法和对象的关系
- Java继承中属性、方法和对象的关系
- c++笔记06---继承,公有继承,继承方式对访控属性的影响,私有继承和保护继承
- 时间:2014年3月30日21:32:15公共及保护属性和方法的继承
- hibernate中的id特殊属性hilo剖解(多用于继承关系)
- QObject提供了QMetaObject元类信息(相当于RTTI和反射),信号与连接,父子关系,调试信息,属性,事件,继承关系,窗口类型,线程属性,时间器,对象名称,国际化
- 复习java基础------->继承关系中的方法覆盖和属性隐藏
- hibernate中的id特殊属性hilo剖解(多用于继承关系)
- [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件
- 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试
- Java继承中属性、方法和对象的关系
- 包中类的继承关系及获得属性的权限