类“房间”是抽象的;无法实例化

2022-09-03 01:45:30

我有一个类,一个抽象类,它有子类,我在一个类中创建。我有一个方法可以向ArrayList添加一个房间;RoomFamilyStandardroom = new ArrayList<Room>();Hostel

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

但是我得到编译时错误;

房间是抽象的;无法实例化

我知道抽象类不能实例化,但是添加房间的最佳方法是什么?


答案 1

您有此错误,因为您正在尝试创建抽象类的实例,这是不可能的。你必须

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

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

答案 2

该错误说明了一切:是一个抽象类,抽象类无法实例化。Room

您正在尝试在此处实例化:Room

new Room(roomNumber,ensuite)

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

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


推荐