当前位置: 代码迷 >> J2SE >> 调用Object类的equals步骤的结果
  详细解决方案

调用Object类的equals步骤的结果

热度:70   发布时间:2016-04-23 20:41:13.0
调用Object类的equals方法的结果
初学Java,看到一个问题,请问结果TRUE是怎么来的?

public class TestObj {
public static void main(String[] args) {
Object o = new Object() {
public boolean equals(Object obj) {
return true;
}
};
System.out.println(o.equals("Fred"));
}
}

------解决方案--------------------
同样的帖子。
http://bbs.csdn.net/topics/390791677
------解决方案--------------------
引用:
同样的帖子。
http://bbs.csdn.net/topics/390791677

对;永远为true;
------解决方案--------------------
引用:
初学Java,看到一个问题,请问结果TRUE是怎么来的?

public class TestObj {
public static void main(String[] args) {
Object o = new Object() {
public boolean equals(Object obj) {
return true;
}
};
System.out.println(o.equals("Fred"));
}
}

打断点,调试一下如果你真想知道,哈哈。
------解决方案--------------------
用匿名内部类的形式重写了Object的equals方法,让调用该方法时永远结果为true
------解决方案--------------------
重写覆盖
------解决方案--------------------
你不是 通过匿名类的方式重写了么, 里面的返回值只返回 true,那调用的时候,肯定永远是true啦.
------解决方案--------------------
你重写了顶级类Object的equals方法且该方法永远返回true, 其他类调用equals方法也就是那结果了
------解决方案--------------------

 public boolean equals(Object obj) {
                return true;
            }


你已经让它恒为true了,还想得到不同的结果吗? 
------解决方案--------------------
已重写 , 已覆盖。
------解决方案--------------------
你new的匿名类重写equals,返回值永远都是true啊
  相关解决方案