La classe "Chambre" est abstraite; ne peut pas être instanciée

J'ai une classe d'une classe abstraite Room qui a sous-classes Family et Standard, j'ai créé room = new ArrayList<Room>(); dans un Hostel classe. J'ai une méthode pour ajouter une salle à l'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;
}

Mais j'ai l'erreur de compilation;

Chambre est abstraite; ne peut pas être instanciée

Je comprends que les classes abstraites ne peut pas être instanciée, mais quelle est la meilleure façon d'ajouter des chambres?

Vous dites que vous "avoir une classe abstraite Room", et vous vous demandez pourquoi le compilateur se plaint quand vous essayez de l'instancier?
Je pense que vous devriez avoir un coup d'oeil à cette page: docs.oracle.com/javase/tutorial 🙂
Pourquoi avez-vous fait de la place abstrait? Demandez-vous si vous comprenez vraiment ce que abstract fait et vous devriez être en mesure de répondre à la question vous-même.
lorsque vous donnez à cette déclaration de méthode?
Vous ne pouvez pas créer d'instance de abstract classe, la classe de béton est nécessaire. Par exemple: room.add( new BigRoom(roomNumber,ensuite) );

OriginalL'auteur Darren Burgess | 2011-12-15