在 Collection Interface 方法 boolean equals(Object obj) 中,任何 Object obj 都符合参数条件,还是只有 Collection c 符合参数条件?

In Collection Interface method boolean equals(Object obj) does any Object obj qualifies as parameter or only Collection c qualifies as parameter?

我有以下代码-

Collection collection1 = new ArrayList();
collection1.add(new Integer(1));

Collection collection2 = new ArrayList();
collection2.add(new Integer(1));

Integer integer = new Integer(1);

System.out.println(collection1.equals(collection2));
System.out.println(collection1.equals(integer));

输出-

true
false

结果符合预期。但是 Collection Interface 方法不应该是 - boolean equals(Collection c)?

但是,它是 boolean equals(Object obj)

那么非Collection Object如何作为参数成功传递得到boolean输出true呢?

equals 方法是从 Object 继承而来的,您不能更改它的签名。例如,equals 方法的实现将负责验证传递的对象是否实际上是 Collection 的实例。 编辑: 更改 equals 方法的签名将导致 class 具有两个 equals 方法,这是不必要的。