为了从概念上理解继承、接口和多态性,我创建了几个类来测试事物。我得到的结果不是我所期望的。代码如下:
public class Animal implements Comparable{
//Animal constructor & methods
public int compareTo(Object arg0){System.out.println("Animal.compareTo");}
}
public class Bear extends Animal{
//Bear constructor & methods
}
public class PolarBear extends Bear implements Comparable{
//PolarBear constructor & methods
public int compareTo(Object arg0) {System.out.println("PolarBear.compareTo");
我没有收到任何错误说我无法再次实现 Comparable。但是在我的测试中,一旦我创建了 PolarBear,我就无法回到 Animal 的 compareTo 方法,即使 PolarBear 应该继承 Animal 的 compareTo。我测试了以下内容:
Animal bobo = new PolarBear();
bobo.compareTo(null);
((PolarBear) bobo).compareTo(null);
((Animal)bobo).compareTo(null);
((Comparable) bobo).compareTo(null);
他们每个人都打印了:
PolarBear.compareTo
有什么方法可以访问Animal
'scompareTo
吗?从逻辑上讲,我不希望能够比较 a 的动物品质PolarBear
以及PolarBear
品质吗?