无法初始化子对象的引用数组

J.O*_*sen 3 java oop

我需要创建对子对象的引用数组.在这种情况下,Room必须有对象的引用数组:DarkRoomLightRoom.在类型的数组的初始化行中有错误Room.少了什么东西?

public abstract class Room {

    public Room[][] space = new Room[4][4]; // <<Syntax error on token ";",

    space[0][0] = new DarkRoom();
    space[0][1] = new LightRoom();
    space[1][0] = new DarkRoom();
    space[1][1] = new LightRoom();              
}

public class LightRoom extends Room  { ... }

public class DarkRoom extends Room  { ... }
Run Code Online (Sandbox Code Playgroud)

Hov*_*els 6

你的设计远远不够.一个类不应该包含一个子对象数组,实际上应该不知道或依赖它的子类.这既是递归也是逻辑的噩梦.

我建议你将Room类中的数组移到更适合的地方,比如Hotel class或House类.

  • 当然比纠正语法更好的长期解决方案. (2认同)