黑马程序员技术交流社区

标题: 向下转型 [打印本页]

作者: liuzegang    时间: 2016-2-9 23:15
标题: 向下转型

这里为什么要向下转型?

作者: Android666    时间: 2016-2-10 22:17
因为所有类直接间接继承Object类
作者: 谁的苍茫    时间: 2016-2-13 08:05
这设计到多态,当父类引用指向子类对象的时候,子类可以直接调用父类的方法,这有个自动向上提升,但是父类想用子类的方法,就要向下转型
作者: 苗超维    时间: 2016-2-14 00:24
因为多态啊

作者: 847374032    时间: 2016-2-14 01:48
封装多态继承接口!{:2_32:   这里用到继承和多态,父类中没有,只能向子类中找
作者: 好大一只    时间: 2016-2-14 16:30
为了使用子类的特有方法
作者: 刺客015    时间: 2016-2-14 20:22
多态,当父类引用指向子类对象的时候,子类可以直接调用父类的方法,这有个自动向上提升,父类想用子类的方法,就要向下转型才可以用子类特有的方法
作者: hexinchun    时间: 2016-2-14 23:08
面向对象里的一大特点 多态的应用
作者: liuxiaoye    时间: 2016-2-15 21:30
没加泛型,不能判定类型,返回的为object
作者: ma464526717    时间: 2016-2-17 22:01
因为要使用子类(Student类)的特有功能。
作者: WestdoorEmperor    时间: 2016-2-18 18:57
因为add(Object obj)当你传入s1时 会自动向上转型,相当于多态,,,,要调用子类方法时 必须要转换成子类对象
作者: 黑白涩    时间: 2016-2-18 19:01
没加范型,it.next()返回的是Object类的对象,但是这个对象不能使用子类Student的特有功能,所以得转下来
作者: 嘉荫    时间: 2016-2-18 22:05
先说向上转型:父类引用指向子类对象,这个对象可以调用父类的成员(我是这么理解的他这么做调用的还是子类的成员只不过只能调用子类继承父类的那部分所以如果方法被重写调用的是重写后的方法)但不能调用子类独有的成员
若想调用子类独有的成员需要向下转型:将次引用强制转换成子类的引用,然后就可以调用子类独有的成员了。
作者: ma464526717    时间: 2016-2-20 00:48
因为要使用子类特有的set,get方法
作者: zapoo    时间: 2016-2-20 12:44
这是多态弊端的一种具体体现,所有类的父类都是Object类,由于Object类中没有getName()和getAge()方法,如果不向下转型的话,父类引用是不能调用子类的方法的




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