我遇到了一个设计问题,我不知道如何在java中克服.我想覆盖从父构造函数调用的方法.这是一个非常简单的问题示例:
public class Parent {
public Parent(){
a();
}
public void a() {
// CODE
return;
}
}
public class Child extends Parent {
public Child() {
super();
}
public void a() {
super.a();
// MORE CODE
return;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道子类不会被初始化,直到构造父类,因此不会调用子类a()方法.解决这个问题的正确设计是什么?
将调用子覆盖 - 但是子构造函数还没有执行,所以除非它被设计为在部分初始化的对象上调用,否则很容易出现问题.最好的方法是不要在构造函数中调用虚方法.它只是是一个问题.你是否掌控了这两门课程?你可以重新设计以避免问题吗?
| 归档时间: |
|
| 查看次数: |
2733 次 |
| 最近记录: |