gpt4 book ai didi

java - 父类(super class)中未使用的变量

转载 作者:行者123 更新时间:2023-12-04 00:33:16 24 4
gpt4 key购买 nike

class ABC {
private int[] variable;
public int[] getVariable() {
return variable;
}
public ABC() {
variable = new int[123456];
}
}

class DEF extends ABC {
public int[] getVariable() {
return new int[0];
}
}
variableABC 中使用,但在 DEF 中完全未使用且不需要。但是我看不到任何适当的方法来防止在 DEF 中创建这个大数组,因为总是必须执行一些父类(super class)的构造函数。
我只看到一种不优雅的方式:ABC 的新“假”构造函数:
protected ABC(boolean whatever) {}

然后在 DEF 我可以写:
public DEF() {
super(true);
}

它有效 - variable 未初始化。

但是,我的问题是 - 我可以更正确地解决这个问题吗?

也许如果变量未使用,编译器会自动删除她?当这种功能可能有用时,这种情况很常见。

最佳答案

你确定DEF需要延期ABC - 我的意思是,是 DEF逻辑上是 ABC ?继承很强大,但需要谨慎使用。

在你的情况下,我宁愿有:

public interface WithVariable {
int[] getVariable();
}

并拥有 ABCDEF实现 WithVariable .这样构造一个 ABC对象将初始化所需的变量,并构造一个 DEF object 不会做任何事情,但它们都会回复相同的消息( getVariable())。

关于java - 父类(super class)中未使用的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18789651/

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