0

我有抽象类 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 声明为子类对象(不知道他的名字),以便他可以使用他自己的这个抽象方法的实现吗?

4

1 回答 1

0

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

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

于 2012-08-30T00:44:10.237 回答