1. ホーム
  2. java

[解決済み】クラス 'Room' は抽象的であり、インスタンス化できない。

2022-02-10 06:14:54

質問

抽象的なクラスがあります 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;
}

しかし、コンパイル時にエラーが発生します。

Room は抽象的であり、インスタンス化できない

抽象クラスがインスタンス化できないことは理解できましたが、部屋を追加するにはどのような方法があるのでしょうか?

どのように解決するのですか?

このエラーは、抽象クラスのインスタンスを作成しようとしているためですが、これは不可能です。次の操作を行います。

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

または

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