有没有办法在子类对象上调用超类的方法而不通过同名的子类方法?

时间:2015-11-05 09:15:13

标签: java object-oriented-analysis

如果我有一个超类和子类如下

class Superclass {
    public void someMethod() {
        System.out.println("superclass called here");
    }
}

class Subclass extends Superclass {
    public void someMethod() {
        System.out.println("subclass called here");
    }
}

假设我有一个对象,其类是子类,比如Subclass sc = new Subclass();。我知道我可以在子类的方法中使用super.someMethod();来调用超类的方法。但有没有办法可以在对象sc上调用supclass方法而不必通过同名的子类方法?

P.S。这个问题来自于Java课程中UCB数据结构的一个小任务。 第四部分,问题三。 CS 61B Lab 5

1 个答案:

答案 0 :(得分:0)

没有。多数民众赞成不可能。此外,从面向对象的角度来看,祖先类不应该知道它们的后代,所以如果你需要这样的东西,那么最好重新设计你的类。

编辑:也许可以使用一些类路径遍历和反射来实现,但我强烈建议不要这样做(见上文)。