如何将main包装在可扩展的类中?

时间:2016-08-18 20:15:17

标签: java

我想制作一个测试程序,而不是显式指定main方法,扩展一个类/抽象类,并覆盖一个由超类调用的方法,例如init

我的尝试:

JavaApplication.java

public class JavaApplication {
    public JavaApplication(){
        this.init(null);
    }

    public JavaApplication(String[] args) {
        this.init(args);
    }

    public void init(String[] args) {
        /* override me */
    }

    public static void main(String[] args) {
        new JavaApplication(args);
    }
}

MyApp.java

public class MyApp extends JavaApplication {
    @Override
    public void init(String[] args) {
        System.out.println("Hello, World!");
    }
}    

代码编译但是我的init方法没有被调用(字符串没有出现)。

在Java中制定此行为的正确方法是什么?

相关问题:

  1. can-i-access-a-subclass-method-through-a-base-class-typed-reference
  2. calling-a-method-of-subclass-through-reflection
  3. whats-wrong-with-overridable-method-calls-in-constructors
  4. calling-an-overridden-method-from-a-parent-class-ctor

1 个答案:

答案 0 :(得分:0)

您需要在main中添加MyApp方法,以创建MyApp的实例:

public static void main(String[] args) {
    new MyApp(args);
}

然后,运行MyApp而不是JavaApplication