相关疑难解决方法(0)

构造函数中的可覆盖方法调用有什么问题?

我有一个Wicket页面类,它根据抽象方法的结果设置页面标题.

public abstract class BasicPage extends WebPage {

    public BasicPage() {
        add(new Label("title", getTitle()));
    }

    protected abstract String getTitle();

}
Run Code Online (Sandbox Code Playgroud)

NetBeans通过消息"构造函数中的可覆盖方法调用"警告我,但它应该有什么问题呢?我能想象的唯一选择是将其他抽象方法的结果传递给子类中的超级构造函数.但是很多参数很难读懂.

java oop inheritance constructor overriding

366
推荐指数
4
解决办法
12万
查看次数

何时初始化实例变量并分配值?

当doees实例变量初始化时?是在构造函数块完成之后还是之前?

考虑这个例子:

public abstract class Parent {

 public Parent(){
   System.out.println("Parent Constructor");
   init();
 }

 public void init(){
   System.out.println("parent Init()");
 }
}
Run Code Online (Sandbox Code Playgroud)
public class Child extends Parent {

private Integer attribute1;
private Integer attribute2 = null;

public Child(){
    super();
    System.out.println("Child Constructor");
}

public void init(){
    System.out.println("Child init()");
    super.init();
    attribute1 = new Integer(100);
    attribute2 = new Integer(200);
}

public void print(){
    System.out.println("attribute 1 : " +attribute1);
    System.out.println("attribute 2 : " +attribute2);
}
}
Run Code Online (Sandbox Code Playgroud)
public class Tester {

public static void main(String[] args) { …
Run Code Online (Sandbox Code Playgroud)

java inheritance abstract-class object instance

9
推荐指数
1
解决办法
3644
查看次数