中的方法中使用超类中的变量使用超类中的变量时遇到问题。请参阅下面的代码。在ConncetionMap(final int n)中,我可以成功使用超类中的变量n,但在重写的Test()方法中,变量n突然不再被识别。我该如何继续使用变量n?无法在子类
我认为如果ConncetionMap是公开的,我应该可以从同一个类的其他地方访问n。
public abstract class Connection {
public Connection(final int n) {
}
public abstract int Test();
}
public class ConnectionMap extends Connection {
public ConnectionMap (final int n) {
super(n);
//Here, n is recognized from the superclass and it simply works
if (n < 0) {
throw new IllegalArgumentException("Error.");
}
}
@Override
public int Test() {
int c = n; //This is an example usage of n, and here n is not recognized anymore.
}
}
getN将是无用的,因为'n' **没有被记录下来,在Connection **的构造函数中丢弃了。 –
您在父项中说“getN” –
我假定发布的代码已被简化。我不明白为什么超类的构造函数会接受它根本不使用的参数。 test()方法也不能编译,但我也假设原因是OP删除了不相关的东西。 getN()方法返回传递给构造函数的n,它的作用与您在答案中添加的public n属性的作用相同。我不会建议使用公共属性BTW。 –