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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sunchuan 中级黑马   /  2016-5-7 23:15  /  650 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public boolean equals(Object d)
                person p = (person)d;//我传进来的就是子类的对象p2为什么还要强转呢?
                return this.name.equals(p.name) && this.age == p.age;
        }

11 个回复

倒序浏览
表示还没有学到
回复 使用道具 举报
发这个表示今天没学好啊..........在复习一下吧 有讲到的  我自己能搞懂   但是给你解释不了  自己的理解
回复 使用道具 举报
自动类型提升为object了
回复 使用道具 举报
本帖最后由 Love丶cd 于 2016-5-8 09:48 编辑

因为方法定义的传入的参数类型是Object,你传入P2相当于Object d=P2,P2=new Person()。此时P2自动转型为了Object类。所以当你Person p=d时。d是父类(Object)的引用,要转换为person子类,需要进行强制类型转换。即Person p=(Person)d;
回复 使用道具 举报 1 0
你看一下你传进来的参数类型呀
回复 使用道具 举报
Love丶cd 发表于 2016-5-8 09:46
因为方法定义的传入的参数类型是Object,你传入P2相当于Object d=P2,P2=new Person()。此时P2自动转型为 ...

对的。。。。
回复 使用道具 举报
他是属于父类类型的!!!!!!!!!!
回复 使用道具 举报
问题解决了
回复 使用道具 举报
你这是学习的第几天的???
回复 使用道具 举报
冯领峰 来自手机 中级黑马 2016-5-8 21:04:07
11#
父类不能访问子类特有的方法和属性,要想使用就要向下转型
回复 使用道具 举报
你要调用name和age属性,Object类里面并没有,只是他的子类中定义了,你要用就要向下转啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马