java - 为什么object1等于调用方法实例而不是声明对象类型

标签 java

为什么object1等于方法的调用实例而不是声明对象类型 我在下面写了代码。与 EQUAL 对象的混淆

public class TestEqual {

        @Override
        public boolean equals(Object obj) {

            return true;
        }
         public static void main(String[] args) {
            TestEqual test1=new TestEqual();
            TestEqual test2=new TestEqual();
            if(test1.equals(test2))
            {
                System.out.println("EQUAL");
            }
            Object object1=new TestEqual();
            Object object2=new TestEqual();
            if(object1.equals(object2))
            {
                System.out.println("EQUAL object");
            }
        }
    }

输出:

EQUAL
EQUAL object

最佳答案

这是正确的行为,也是继承的工作原理。要了解有关其工作原理的更多信息,请阅读 http://docs.oracle.com/javase/tutorial/java/IandI/override.html

关于java - 为什么object1等于调用方法实例而不是声明对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20185436/

相关文章:

基于 Java SSL 套接字的客户端/服务器应用程序

java - Eclipse 程序无法运行

java - 如何使用java中的客户端接口(interface)获取远程文件

java - 将 OnLongClickListener 应用于具有相同名称的多个图像

java - 为什么我不能在接口(interface)中声明静态方法?

java - 使用 UriBuilder 从 XmlAdapter 创建绝对 URI

java - PCA pca = 新PCA

java - JPA OneToOne 惰性关系

java - 在 xml 序列化期间将每个属性放在一个新行上

java - 使用 Restful 服务下载 zip 文件