我有一个类Tile和一个扩展Terrain类的类Tile

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

我想使(例如)Dirt类中的Tile对象

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对象?

最佳答案

您可以让进餐者将DirtRock类设为静态,并实例化它们:

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


或者,如果您是非静态对象,则需要在创建Terrain实例之前先创建Dirt实例

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


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

10-05 21:15