【发布时间】:2011-12-15 12:11:55
【问题描述】:
我有一个抽象类Room,它有子类Family 和Standard,我在Hostel 类中创建了room = new ArrayList<Room>();。我有一个向 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”,你问为什么编译器在你尝试实例化它时会报错? -
我想你应该快速浏览一下这个页面:docs.oracle.com/javase/tutorial :-)
-
你为什么要把房间抽象化?问问自己你是否真的了解
abstract的作用,你应该能够自己回答这个问题。 -
你在哪里给出这个方法声明?
-
你不能创建
abstract类的实例,需要具体的类。例如:room.add( new BigRoom(roomNumber,ensuite) );
标签: java abstract-class instantiation