从构造函数调用方法
2022-09-02 00:11:08
请原谅任何小的语法错误或其他什么,我在Jitsi模块中遇到这种情况,并且对Java不是很熟悉,想要确认发生了什么以及为什么以及如何修复它。
public abstract class A
{
public A()
{
this.load();
}
protected void load()
{
}
}
public class B extends A
{
private String testString = null;
public B()
{
super();
}
@Override
protected void load()
{
testString = "test";
}
}
当使用按名称加载类方法创建类 B 的实例时,应用程序正在执行此操作:
- 调用 B 类中重写的 load()
- 初始化变量(根据调试器调用“私有字符串 testString = null”),将它们清空。
这是预期的 Java 行为吗?这是什么原因造成的?这是一个在1.7 JDK上运行的Java 1.6应用程序。