我想我的Java数组正在碰到继承概念墙。我是Java的新手,所以请告诉我我是否有倒挂的东西。本质上,我想做三件事:
问题似乎是上述步骤2和3中的方法看不到RunnersArray,但是它们的类(由于设计原因)不能继承或扩展Runners类。
在此先感谢您的任何建议。
以下是一些代码片段,显示了我要执行的操作:
public class Runners extends Party {
Runners[] runnersArray = new Runners[5];
}
和
public class GenerateObject extends /* certain parent class */ {
public GenerateObject (int arrayNum) {
runnersArray[arrayNum] = /* certain Runners attributes */;
}
}
和
public class Evaluating extends /*certain parent class*/ {
public Evaluating (int arrayNum) {
System.out.println(/* String cast attribute of runnersArray[arrayNum]*/;
}
}
最佳答案
在代码示例中使用它的方式,RunnersArray是Runners类的package-private
(因为它没有任何访问说明符,默认为package-private)实例变量。因此,您不能只从GenerateObject和Evaluating类中访问它。
如果希望runnersArray是全局可见的对象,则可能应该是一个公共静态变量。
public class Runners extends Party {
public static Runners[] runnersArray = new Runners[5];
}
然后,您可以从其他类中访问它,如下所示:
public class GenerateObject extends /* certain parent class */ {
public GenerateObject (int arrayNum) {
Runners.runnersArray[arrayNum] = /* certain Runners attributes */;
}
}
希望这可以帮助。