调用子类会覆盖父主方法中的抽象方法

时间:2012-08-29 23:14:34

标签: java methods call subclass abstract

我有抽象类Tester,抽象方法test()和main方法:

    abstract class Tester {

     abstract String test();

     public static void main(String[] args) {
          doSomething();

          Tester t = new Tester() {
          @Override
              String test() {
                return "";
              }
          };        
          result = t.test();

          doSomethingElse();
     }            
    }

显然t.test()将始终为此类和任何其他子类返回“”。

但我想在main方法中调用方法test(),这样任何子类都会在执行时调用其自己的测试方法(在其继承的main方法中)。

这甚至可能是我想象的方式吗?我可以以某种方式将对象t声明为子类对象(不知道他的名字),这样他就可以使用自己的抽象方法实现了吗?

1 个答案:

答案 0 :(得分:0)

在我看来,您还没有仔细考虑过如何设计应用程序/对象结构。尝试查看是否有更好的方法来组织对象。

你可以使你的情况工作的唯一方法是你有一个委托给当前实例的test0()方法或类似方法的test()方法。这是Java在某些地方内部使用的技巧。