黑马程序员技术交流社区
标题:
今天学习的问题
[打印本页]
作者:
sunchuan
时间:
2016-5-7 23:15
标题:
今天学习的问题
public boolean equals(Object d)
person p = (person)d;//我传进来的就是子类的对象p2为什么还要强转呢?
return this.name.equals(p.name) && this.age == p.age;
}
作者:
SilentMax
时间:
2016-5-8 00:02
表示还没有学到
作者:
z736886202
时间:
2016-5-8 00:36
发这个表示今天没学好啊..........在复习一下吧 有讲到的 我自己能搞懂 但是给你解释不了 自己的理解
作者:
xiaochenu
时间:
2016-5-8 08:20
自动类型提升为object了
作者:
Love丶cd
时间:
2016-5-8 09:46
本帖最后由 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;
作者:
吖玮
时间:
2016-5-8 09:51
你看一下你传进来的参数类型呀
作者:
小红花
时间:
2016-5-8 10:40
Love丶cd 发表于 2016-5-8 09:46
因为方法定义的传入的参数类型是Object,你传入P2相当于Object d=P2,P2=new Person()。此时P2自动转型为 ...
对的。。。。
作者:
艺高人胆大
时间:
2016-5-8 12:11
他是属于父类类型的!!!!!!!!!!
作者:
sunchuan
时间:
2016-5-8 20:39
问题解决了
作者:
小小M
时间:
2016-5-8 20:49
你这是学习的第几天的???
作者:
冯领峰
时间:
2016-5-8 21:04
父类不能访问子类特有的方法和属性,要想使用就要向下转型
作者:
番茄君
时间:
2016-5-8 21:33
你要调用name和age属性,Object类里面并没有,只是他的子类中定义了,你要用就要向下转啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2