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

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对象获取超类实现?

最佳答案

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

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

10-08 13:38