core java书中的一个程序片断:
其中Employee为Manager的超类
二者都实现了接口Comparable,即 public interface Comparable
{
  int compareTo(Object otherObject);
}下面是Manager中实现的compareTo方法
public int compareTo(Object otherObject)
{
  if(otherObject instanceof Manager)
  {
    Manager other=(Manager)otherObject;
  }
  
  else if(otherObject instanceof Employee)
  {
    return 1;
  }
  
  else
    return -((Comparable)otherObject).compareTo(this);
}我想问的是:最后一个return的调用的compareTo是那个类实现的

解决方案 »

  1.   

    大家回答我这个问题就可以了程序之所以这样写((Comparable)otherObject).compareTo(this);
    是因为otherObject是以Object类型传进来的,为了调用otherObject自己的compareTo,就需要把它转换为本来的类型,但又不知道它是什么类型,所以用Comparable类型转换就可以达到这个效果?
      

  2.   

    这个方法应该是基类实现的,既Object根类
      

  3.   

    个人觉得这样写,明显是有问题的
    otherObject不总是可以转成Comparable对象,即不能保证传入的参数肯定实现了Comparable接口
      

  4.   

    如果假设传入的参数所属的类实现了Comparable接口
    那么,程序之所以这样写((Comparable)otherObject).compareTo(this);
    是因为otherObject是以Object类型传进来的,为了调用otherObject自己的compareTo,就需要把它转换为本来的类型,但又不知道它是什么类型,所以用Comparable类型转换就可以达到这个效果?