开发基础 报表教程 数据字典 对话编程 表单打印 增强出口 SAP接口 S/4 HANA
实战案例 实战笔记 资料下载 CRM
问答互助 会员分享 俱乐部 广告区
论坛指南、建议和投诉
Twilight发表于 2015-10-27 16:57巽呆沐 最后回复于 2015-12-02 09:58 [复制链接] 6946 1
使用道具 举报
Twilight
管理员
发表回复 回帖后跳转到最后一页
向上类型转换(隐式/自动类型转换),子类到父类的转换
无风险,如将杯子中的水倒入壶中
Widening-casting:
Down-casting(缩小构造)向下继承,也就是强制性向下赋值类型,说的是子类对象
向下类型转换(强制类型转换),父类到子类的转换
有风险,如将壶中的水倒入杯子中,可能会有溢出的风险
这种转换只会出现在父类与子类的转换中。在OO里,类的继承是单向的,也就是子类继承父类,父类却不知道它的子类是哪一个。当子类继承父类之后,它就具有父类的所有属性,也可以访问父类里的所有组件(PUBLICK和protect, Private除外)。 子类继承父类之后,可以通过redefinition来修改父类中的方法,但是没有改变父类中的结构。
我们在系统里定义了一个Superclass: LCL_SUPERCLASS,它一个子类LCL_SUBCLASS并且CL_SUBCLASS继承了LCL_SUPERCLASS,子类的继承是通过INHERTING FROM来实现的。
1、Narrowing-casting
从子类对象的“更多属性、方法”切换到父类对象“较少的属性、方法”,称为Narrowing-casting
通常我们把Super类看作树类结构的Top,而子类作为Down,所以子类到父类的转换也称为UP-CASTING,相反父类到子类的转换也可以称为Down-casting
2、Widening-casting
从父类对象的“较少的属性、方法”切换到子类对象“更多属性、方法”,称为Widening-casting
接口与类之间也有转型分配
3、我们用一个例子来加深理解
子类到父类转换,变少了,不能计算面积,所以叫Narrowing Cast( Upcasting)
父类到子类的转换,变多了,能计算图形(圆)的面积,所以叫Widening Cast(Downcasting)