为什么在覆写comparable的compareTo方法
main(){
System.out.println(new Person("a").compareTo("b"));
}
class Person implements Comparable{
String name;
Person(String name){
this.name = name;
}
public int compareTo(Object obj){
String s = (String)obj;
return this.name.compareTo(s);//为什么这里虚拟机是调用String的compareTo方法,而不是递归此方法呢?
}
}
String的方法public int compareTo(String anotherString)
comparable的方法int compareTo(T o)
如果说参数和返回值完全一样才可以递归的话,还是有一点疑问参数如果是String类型时并不冲突啊
内部是怎么区分的通过反射来确定是否重载,覆写或者递归的吗?
又是如何调用的String的compareTo方法
|