gpt4 book ai didi

java - 如何覆盖父构造函数中使用的方法?

转载 作者:搜寻专家 更新时间:2023-11-01 01:39:06 24 4
gpt4 key购买 nike

我有一个设计问题,我不知道如何在 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;
}
}

我知道在构造父类之前不会初始化子类,因此不会调用子类的 a() 方法。克服这个问题的正确设计是什么?

最佳答案

子覆盖将被调用 - 但子构造函数尚未执行,因此除非它被设计为在部分初始化的对象上调用,否则您很容易遇到问题。最好的方法是不要在构造函数中调用虚方法。这只是一个问题。你能控制这两个类(class)吗?您能否重新设计以从一开始就避免该问题?

关于java - 如何覆盖父构造函数中使用的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com