我有抽象类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声明为子类对象(不知道他的名字),这样他就可以使用自己的抽象方法实现了吗?
答案 0 :(得分:0)
在我看来,您还没有仔细考虑过如何设计应用程序/对象结构。尝试查看是否有更好的方法来组织对象。
你可以使你的情况工作的唯一方法是你有一个委托给当前实例的test0()方法或类似方法的test()方法。这是Java在某些地方内部使用的技巧。