0

例如,我只是想知道如何使用子类来实现超类。

class Animal {
    void poo() {
        System.out.println("general poo");
    }
}

class Horse extends Animal{
    void poo() {
        System.out.println("horse poo");
    }
}

Animal animal1 = new Horse(); 
// using this I get the implementation of the Horse class's methods
animal1.poo(); //should return horse poo

试图向上转换它以获得超类实现但无济于事

((Animal)animal1).poo() // still returns the horse class's implementation of the method

如何使用 animal1 对象获取超类实现?

4

2 回答 2

7

在 Java 中,您不应覆盖超类方法,除非新方法旨在完全替代对该方法的所有外部调用。

在 sublcas 实现中,您可以使用例如 super.toString() 来引用直接超类方法。

于 2012-11-22T00:11:36.560 回答
1

除了这是不可能的,它没有意义,尝试重新设计你的班级。

于 2012-11-22T00:13:16.303 回答