我有以下代码:
public class Application extends ApplicationManager{
public static void main(String[] args) {
ProcessUtility.enableProcessUtility();
new Application().start();
}
}和类ApplicationManager代码:
public class ApplicationManager {
public ApplicationManager() {
String configPath = "file:home" + File.separator + "log4j.xml";
System.setProperty("log4j.configuration", configPath);
logger = Logger.getLogger(ApplicationManager.class);
}
protected void start() {
logger.info("*** Starting ApplicationManager ***");
}当我运行应用程序类时,父类的start方法将被调用,它可以在不调用父类默认构造函数的情况下被调用吗?
我的第二个问题是上面的代码不同于这个代码:
public class Application extends ApplicationManager{
public static void main(String[] args) {
new Application().start();
}
@Override
protected void start() {
ProcessUtility.enableProcessUtility();
super.start();
}
}和上面的ApplicationManager类。
这是静态方法的代码:
public static void enableProcessUtility() {
isCommon = false;
}提前谢谢。
发布于 2016-09-01 17:31:30
你的第一个问题已经在这里回答了https://stackoverflow.com/a/10508202/2527075
至于你的第二个问题,在第二个例子中,超级构造函数将在ProcessUtility调用之前被调用,在第一个例子中,ProcessUtility调用是第一个。
https://stackoverflow.com/questions/39267672
复制相似问题