课程
/后端开发
/Java
/Java入门第二季 升级版
Dog othr = (Dog) obj;这里为什么要强制转换对象类型啊,上面不是已经比较过两个类对象了吗?
2017-03-30
源自:Java入门第二季 升级版 9-9
正在回答
前面第一次比较是比较了两个引用是否指向同一块内存区域,第二次比较是比较了代码中是否是相同的类名,第三次比较是要比较对象的属性值是否相同,因为传进来的obj是Object类型,为了能够使用Dog类中的属性,必须先将其强制转换成Dog类型
Dog othr = (Dog) obj;就是把传进来的对象换成了Dog类型
前面判断的对象是判断两个对象是否是一个对象,即这两个引用是否指向同一块内存。现在的强转应该是怕你传入的对象的类型与该类型不是同一类型,因为类型不同就无法比较的属性值了。
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
1 回答Dog other=(Dog)obj??
1 回答为什么要有这个Dog other=(Dog)obj;
1 回答Dog d = (Dog) obj是什么意思?
3 回答一定要 Dog other = (Dog)obj;
3 回答Dog other=(Dog) obj;这个语句为什么不用new呢