Klasse 'Raum' ist abstrakt; kann nicht instanziiert werden

8

Ich habe eine Klasse eine abstrakte Klasse Room mit den Unterklassen Family und Standard , ich habe room = new ArrayList<Room>(); innerhalb einer Hostel Klasse erstellt. Ich habe eine Methode, um der ArrayList einen Raum hinzuzufügen;

%Vor%

Allerdings bekomme ich den Kompilierzeitfehler;

  

Der Raum ist abstrakt; kann nicht instanziiert werden

Ich verstehe, dass abstrakte Klassen nicht instanziiert werden können, aber was ist der beste Weg, Räume hinzuzufügen?

    
Darren Burgess 15.12.2011, 12:11
quelle

3 Antworten

9

Sie haben diesen Fehler, weil Sie versuchen, eine Instanz der abstrakten Klasse zu erstellen, was unmöglich ist. Du musst

%Vor%

oder

%Vor%     
AValchev 15.12.2011, 12:13
quelle
6

Der Fehler sagt alles: Room ist eine abstrakte Klasse und abstrakte Klassen können nicht instanziiert werden.

Sie versuchen, Room hier zu instanziieren:

%Vor%

Sie können nur Instanzen von konkreten (d. h. nicht abstrakten) Klassen erstellen. Es ist wahrscheinlich, dass Family und Standard konkrete Klassen sind und daher instanziiert werden können.

Um dies zu beheben, müssen Sie anhand der Raumnummer den richtigen Zimmertyp ermitteln und die entsprechende Klasse instanziieren.

    
NPE 15.12.2011 12:14
quelle
0

Sie erstellen eine Instanz einer abstrakten Klasse.

%Vor%

Das ist nicht korrekt.

    
alishaik786 15.12.2011 12:24
quelle