Java,填充数组和继承

标签 java arrays inheritance

我认为我的 Java 数组在继承概念上遇到了障碍。我是 Java 的新手,所以请告诉我是否有颠倒的东西。本质上,我想做三件事:

  1. 使用我的 Runners 类的属性创建一个 runnersArray。
  2. 使用我的 GenerateObjects 类的 GenerateObjects 方法填充我的 runnersArray。
  3. 在我的评估类的评估方法中访问我填充的 ​​runnersArray 的内容。

问题似乎是 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]*/;
     }
}

最佳答案

在代码示例中,runnersArray 是 Runners 类的 package-private(因为它没有任何访问说明符,默认为 package-private)实例变量。因此,您不能只从 GenerateObject 和 Evaluating 类中访问它。

如果你想让 runnersArray 成为一个全局可见的对象,那么也许它应该是一个公共(public)静态变量。

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 */;
    }
}

希望这对您有所帮助。

关于Java,填充数组和继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2582376/

相关文章:

java - 继承和泛型的构造函数问题

C++:父子对象数组

c# - protobuf-net 从 child 到 parent 的继承

Java如何解析UDP数据包中的原始数据

ruby-on-rails - 在 Rails 中,如何删除数组中的所有对象?

java - Maven testNg 项目构建成功但未在命令提示符中运行

javascript - 如何在javascript中使用循环获取十六进制颜色数字的完整列表

javascript - 我正在努力展平一个对象中的两个数组

java - UTF-8 编码与 Base-64 编码

java - 如何让 Maven 站点描述符部署到 Artifactory?