chy?
2020-12-05 01:49
采纳率: 100%
浏览 23
已采纳

动态绑定为什么对equals(A a)失效?

此时equals仍未Object的,而非动态绑定时A类的equals

public class Test{
    public static void main(String[] args) {
        Object o1 = new A();
        A o3 = new A();
        System.out.println(o1.equals(o3));
        
    }
    
}
class A{
        public boolean equals(A a) {
        System.out.println("yes");
        return true;
    }
    
}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 浪人随记 2020-12-05 10:23
    已采纳

    创建了o1、o3两个个对象 ,比较自然为false,见下图:

    打赏 评论
  • 浪人随记 2020-12-05 10:26

    更正上图

    打赏 评论
  • chy? 2020-12-05 16:13

    我懂了谢谢

    打赏 评论
  • weixin_51589884 2020-12-05 22:06

    因为你A类里的equals方法和Object里的equals方法不存在重写关系,你的参数列表有问题

    打赏 评论
  • weixin_51589884 2020-12-05 22:09

    会先去Object里找equals(A a),没有所以用的是Object的equals(Object obj);

    打赏 评论

相关推荐 更多相似问题