黑马程序员技术交流社区

标题: 转型 [打印本页]

作者: meijunwei6275    时间: 2015-9-24 17:46
标题: 转型
怎么样实现向上转型和向下转型?求大神写代码指教

作者: Wqi    时间: 2015-9-24 17:59
Fu f = new Zi();向上
Zi z = (Zi) f;  向下
作者: meijunwei6275    时间: 2015-9-24 18:05
没太看懂
作者: 915816106    时间: 2015-9-24 18:24
多态是父类引用指向子类,这本就是向上转型,向下转型就是子类转成父类后再转回来,就是楼上的两行代码
作者: 阿秋    时间: 2015-9-24 23:28
1.Animal a = new Cat();  // a只能调用Animal的函数和变量
2.Cat c = (Cat)a; //强转后c就能调用Cat的函数和变量
第一行代码是:cat向上转型为Animal类,Animal范围太广了,猫会抓老鼠不代表狗会抓,因此向上转型后只能调用Animal和cat共有的函数.这样才不会出现之前的状况
第二行代码是将Animal向下转型,相当于将Animal类限制在cat类,本来只知道这是Animal不知道是cat或dog,确保不出错,调用Animal公共的行为函数,现在明白了是cat类,那么除了之前共有的函数还可以调用cat类独有的函数

作者: meijunwei6275    时间: 2015-9-25 23:38
谢谢                                                                 
作者: 哈哈我赢了    时间: 2015-9-25 23:47
学习下。。。。
作者: 王海彬    时间: 2015-9-26 00:03
向上转型就是多态,向下转型是要强转,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2