【发布时间】:2012-12-15 23:22:53
【问题描述】:
假设我要重写 Object 的 equals() 方法:
public boolean equals(Object o){
//something
}
public boolean equals(SomeClass s){
//something else
}
SomeClass 显然也是一个Object,那么如果我使用equals 和SomeClass 的Instance 作为参数,会调用哪个方法呢?
【问题讨论】:
-
这是重载,调用重载方法的决定发生在编译时,因此调用具有参数 SomeClass 的方法
-
会调用哪个方法?为什么不写个测试用例,20-30行java代码就行了。
-
@AmitD 他说了一个例子。我们不知道引用 SomeClass 对象的变量的类型。
-
这是不正确的。请参阅 Costi 的答案。
-
@user802421 这是编译时的决定,所以如果你引用 Object 方法并调用对象。