我认为我正在使用我的Java数组运行继承概念墙。我是Java的新手,所以请告诉我,如果我把事情颠倒过来。从本质上讲,我想做三件事:
问题似乎是runnersArray对于上面的步骤2和3中的方法是不可见的,但是它们的类(由于设计原因)不能继承或扩展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]*/;
}
}
答案 0 :(得分:2)
你在代码示例中的方式,runnersArray是一个package-private
(因为它没有任何访问说明符,默认是package-private)Runners类的实例变量。因此,您不能只从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 */;
}
}
希望这有帮助。