A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liuzegang 中级黑马   /  2016-2-9 23:15  /  1124 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


这里为什么要向下转型?

14 个回复

倒序浏览
因为所有类直接间接继承Object类
回复 使用道具 举报
这设计到多态,当父类引用指向子类对象的时候,子类可以直接调用父类的方法,这有个自动向上提升,但是父类想用子类的方法,就要向下转型

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报
因为多态啊
回复 使用道具 举报
封装多态继承接口!{:2_32:   这里用到继承和多态,父类中没有,只能向子类中找

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报
为了使用子类的特有方法
回复 使用道具 举报
多态,当父类引用指向子类对象的时候,子类可以直接调用父类的方法,这有个自动向上提升,父类想用子类的方法,就要向下转型才可以用子类特有的方法
回复 使用道具 举报
面向对象里的一大特点 多态的应用
回复 使用道具 举报
没加泛型,不能判定类型,返回的为object
回复 使用道具 举报
因为要使用子类(Student类)的特有功能。
回复 使用道具 举报
因为add(Object obj)当你传入s1时 会自动向上转型,相当于多态,,,,要调用子类方法时 必须要转换成子类对象
回复 使用道具 举报
黑白涩 来自手机 中级黑马 2016-2-18 19:01:41
12#
没加范型,it.next()返回的是Object类的对象,但是这个对象不能使用子类Student的特有功能,所以得转下来
回复 使用道具 举报
先说向上转型:父类引用指向子类对象,这个对象可以调用父类的成员(我是这么理解的他这么做调用的还是子类的成员只不过只能调用子类继承父类的那部分所以如果方法被重写调用的是重写后的方法)但不能调用子类独有的成员
若想调用子类独有的成员需要向下转型:将次引用强制转换成子类的引用,然后就可以调用子类独有的成员了。
回复 使用道具 举报
因为要使用子类特有的set,get方法
回复 使用道具 举报
zapoo 中级黑马 2016-2-20 12:44:41
15#
这是多态弊端的一种具体体现,所有类的父类都是Object类,由于Object类中没有getName()和getAge()方法,如果不向下转型的话,父类引用是不能调用子类的方法的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马