注册 登录
编程论坛 JAVA论坛

知识点求助,public boolean equals(Object obj) ;谢谢!

小心飞刀hbw 发布于 2017-04-16 14:01, 3666 次点击
public boolean equals(Object obj){
  if(obj instanceof MyKey)
  {
   MyKey objTemp=(MyKey)obj;
  }
这段代码,boolean是返回值的类型,equals是函数名,Object是obj的类型,obj是一个类的变量,中括号里面的MyKey objTemp=(MyKey)obj;这个是什么意思,如果是声明对象的话不应该是MyKey objTemp= new (MyKey);为什么要那样写,我看了好多解释就是看不懂,谢谢帮忙解释一下!!!!!!!!
3 回复
#2
zsh9810229842017-04-16 15:42
回复 楼主 小心飞刀hbw
  MyKey objTemp=(MyKey)obj;这个是对象的强制类型转换,将Object类型强制转换为MyKey类型
#3
纵横阳仔2017-04-16 19:07
这里说的是面向对象中多态的向下转型.
if(obj instanceof MyKey)//红色部分表示,对obj这个对象进行判断,意思是(obj的类型是MyKey吗?)
  {
   MyKey objTemp=(MyKey)obj;    //如果obj的类型是MyKey类型,我就认为obj就是MyKey.
  }
对于这个问题,可以这样想
例子:if(狗 是 动物){        instanceof 的前面是一个对象,后面是一个类名
    动物 d = (动物) 狗;
}
#4
漫步云端242017-04-25 15:46
几位说的够明白了,就是个多态的向下转型问题
1