【问题标题】:How to make object with parent child thing?如何用父子事物制作对象?
【发布时间】:2017-03-25 18:13:49
【问题描述】:

我有一个类Tile,还有一个类Terrain 扩展了Tile 类。

Terrain 类中,我还有其他类,例如DirtRock,它们都扩展了Terrain 类。

我想在Tile 类中创建(例如)Dirt 对象

Tile 类:

public class Tile {

      int id;

      public static Tile dirt1 = new Dirt(1);

      public Tile(int id) {
            this.id = id;
      }
}

地形类:

public class Terrain extends Tile {

      public Terrain(int id) {
            super(id);
      }

      public class Dirt extends Terrain{
            public Dirt(int id) {
                  super(id);
            }
      }

      public class Rock extends Terrain{
            public Rock(int id) {
                  super(id);
            }
      }


}

我应该如何构造DirtRock 对象?

【问题讨论】:

  • 这不是语法上有效的 Java 代码
  • 什么意思?
  • class dirt(id) 部分不是给你一个编译时错误吗?
  • 不抱歉。我在这里犯了一个错误。我试图从内存中编写代码。已编辑!
  • 我是 stackoverflow 的新手。我真的不习惯。

标签: java object inheritance polymorphism


【解决方案1】:

您可以将 DirtRock 类设为静态,然后实例化它们:

public static Tile dirt1 = new Terrain.Dirt(1);

或者如果你是非静态的,你需要在创建 Dirt 的实例之前创建一个 Terrain 的实例

public static Tile dirt1 = new Terrain().Dirt(1);

在这种情况下,您需要在TerrainTile 中定义一个无参数构造函数

【讨论】:

    猜你喜欢
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多