Dog othr = (Dog) obj;这里为什么要强制转换对象类型啊,上面不是已经比较过两个类对象了吗?
前面第一次比较是比较了两个引用是否指向同一块内存区域,第二次比较是比较了代码中是否是相同的类名,第三次比较是要比较对象的属性值是否相同,因为传进来的obj是Object类型,为了能够使用Dog类中的属性,必须先将其强制转换成Dog类型
Dog othr = (Dog) obj;就是把传进来的对象换成了Dog类型
前面判断的对象是判断两个对象是否是一个对象,即这两个引用是否指向同一块内存。现在的强转应该是怕你传入的对象的类型与该类型不是同一类型,因为类型不同就无法比较的属性值了。