关于带对象和类的java中的等号

时间:2017-10-12 04:11:39

标签: java equals

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

注意:A类和B类在其中有一个等号方法!

我做:

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

它出错了。我想当我们做的时候它等于它动态地限制在a和b,这将使它成为现实。或者是因为在编译时它看a并且假定equals将等于(A)并且因为它的B是B b = new B();它说假?或者我在两个方面都错了?

1 个答案:

答案 0 :(得分:4)

由于您未覆盖equals,因此会使用Object的方法

如果你看一下Object

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

显然ab有不同的引用false