“房间”类是抽象的;不能实例化

新手上路,请多包涵

我有一个抽象类 Room 它有子类 FamilyStandard

我已经在 room = new ArrayList<Room>(); Hostel 类中创建了 --- 以及一种向 ArrayList 添加房间的方法;

 public String addRoom(String roomNumber, boolean ensuite)
{
    if  (roomNumber.equals(""))
        return "Error - Empty name field\n";
    else

    room.add( new Room(roomNumber,ensuite) );
    return  "RoomNumber: " + roomNumber + " Ensuite: " + ensuite
     + "  Has been added to Hostel " + hostelName;
}

但是我得到以下编译时错误;

房间是抽象的;不能实例化

我明白抽象类不能被实例化,但是加房间最好的方法是什么?

原文由 Darren Burgess 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 392
2 个回答

你有这个错误是因为你试图创建抽象类的实例,这是不可能的。你必须

room.add(new Family(roomNumber, ensuoute));

或者

room.add(new Standard(roomNumber, ensuoute));

原文由 Valchev 发布,翻译遵循 CC BY-SA 3.0 许可协议

错误说明了一切: Room 是一个抽象类,不能实例化抽象类。

您正在尝试实例化 Room 在这里:

 new Room(roomNumber,ensuite)

您只能创建具体(即非抽象)类的实例。 FamilyStandard 很可能是具体类,因此可以实例化。

要解决此问题,您需要根据房间号找出正确的房间类型,并实例化适当的类。

原文由 NPE 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题