繁体   English   中英

关于 Java 中的对象和类等于

[英]Regarding Equals in java with Objects and Classes

让我们说在java中我有一个A类和一个扩展A的B类。

注意:A 类和 B 类中没有equals 方法!

我愿意:

A a = new B();
B b = new B();
a.equals(b);

结果是假的。 我认为当我们做 equals 时,它会动态地绑定到 a 和 b 上,这将使它成为真的。 或者是因为在编译时它查看 a 并假设 equals 将是 equals(A) 并且因为它的 a B for B b = new B(); 说是假的? 或者我在两个方面都错了?

由于您没有覆盖equals那么它将使用Object的方法

如果您查看 Object 的源代码

 @param   obj   the reference object with which to compare.
 public boolean equals(Object obj) {
    return (this == obj);
 }

显然ab有不同的引用,因此为false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM