为了账号安全,请及时绑定邮箱和手机立即绑定

Dog other = (Dog) obj;类型都一样了,为什么还要转换?????

//如果另一个对象和当前对象类型都不一样,那么肯定不相等,返回false
if (getClass() != obj.getClass())
return false;

//到这一步,传进来的对象肯定和当前对象类型一样了,那么为什么还要有下面的转换呢????????(求解)
Dog other = (Dog) obj;

正在回答

4 回答

大概是说,obj可能是父类的一个应用,eg:Animal obj=new Dog();

说错了请改正!

0 回复 有任何疑惑可以回复我~
#1

如果繁星能来到我身边

写错了,是“引用”
2016-04-27 回复 有任何疑惑可以回复我~

http://blog.csdn.net/kaiwii/article/details/8042488    多态的父类引用指向子类对象


0 回复 有任何疑惑可以回复我~

前面只是判断了类对象是否一致 ,但是并不能保证类的对象也就是属性的值是否相同,如果属性的值不同就会返回false,提示两个对象不相等

0 回复 有任何疑惑可以回复我~

这个是多态

if (getClass() != obj.getClass())
return false; 只是证明了 obj是Dog这个类的对象,但是多态的父类引用指向子类对象 这时的obj也满足上面的条件

所以就需要类型强转

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

Dog other = (Dog) obj;类型都一样了,为什么还要转换?????

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信