我需要一个名为building的通用基类,它存储建筑物的楼层数, 房间数量及其总面积。我还需要一个名为 house 的派生类,它继承 建筑并存储卧室和浴室的数量,以及另一个 名为 office 的派生类也继承了 building 并存储灭火器的数量和 电话。
我必须创建一个 Java 应用程序来演示此类层次结构并提供所有必需的 方法。必须使用以下主要方法来测试这些类。
public class TestBuildings
{
public static void main(String[] args)
{
building building1 = new building(1, 10, 6000);
building building2 = new building();
System.out.println();
house house1 = new house(1, 5, 3000);
house house2 = new house(2, 2);
System.out.println();
office office1 = new office(1, 2, 15000);
office office2 = new office(2, 6, 15000, 6, 30);
System.out.println();
//change building properties
building2.setFloors(3);
building2.setRooms(12);
building2.setFeet(20000);
System.out.println("Building 2: \n" + building2.toString() + "\n\n");
//change house properties
house1.setBedrooms(3);
house1.setBaths(3);
house2.setFloors(2);
house2.setRooms(10);
house2.setFeet(4200);
System.out.println("House 1: \n" + house1.toString() + "\n\n");
System.out.println("House 2: \n" + house2.toString() + "\n\n");
//change office properties
office1.setFireExt(4);
office1.setTelephones(50);
System.out.println("Office 1: \n" + office1.toString() + "\n\n");
}
}
这就是我的类(class) build
public class building
{
private int floors;
private int rooms;
private int sqft;
public void setFloors(int floors)
{
this.floors = floors;
}
public int getFloors()
{
return floors;
}
public void setRooms(int rooms)
{
this.rooms = rooms;
}
public int getRooms()
{
return rooms;
}
public void setFeet(int sqft)
{
this.sqft = sqft;
}
public int getFeet()
{
return sqft;
}
}
这是我的类(class)房子
public class house extends building
{
private int bedrooms;
private int baths;
public void setBedrooms(int bedrooms)
{
this.bedrooms = bedrooms;
}
public int getBedrooms()
{
return bedrooms;
}
public void setBaths(int baths)
{
this.baths = baths;
}
public int getBaths()
{
return baths;
}
}
最后,办公室类
public class office extends building
{
private int fire;
private int phones;
public void setFireExt(int fire)
{
this.fire = fire;
}
public int getFireExt()
{
return fire;
}
public void setTelephones(int phones)
{
this.phones = phones;
}
public int getTelephones()
{
return phones;
}
}
我的问题是,我必须在三个类中添加、减去或修改什么才能使 main 方法正常工作?我是否需要其中的数组?
任何帮助将不胜感激。谢谢!
最佳答案
您必须为您的建筑物、房屋和办公室创建带有参数的构造函数。例如,对于构建:
public building(int floors, int rooms, int sqft) {
this.floors = floors;
this.rooms = rooms;
this.sqft = sqft;
}
在没有指定参数的情况下 build 建筑物对我来说没有意义 - 因此建筑物应该有指定的楼层、房间、平方英尺,至少您应该提供一些默认值:
public class building {
private int floors = 1;
private int rooms = 1;
private int sqft = 1; // Have no idea what is default value here
...
}
然后,您将房屋定义为从建筑物延伸出来的类。这意味着您的类(class)房屋是一座建筑,并且必须指定楼层、房间和平方英尺来 build 它:
public class house extends building {
private int bedrooms;
private int baths;
public house(int floors, int rooms, int sqft) {
super(floors, rooms, sqft);
}
...
}
同样,只有卧室和浴室的房屋 builder 是没有意义的,因为没有指定楼层、房间、平方英尺的信息,因此您无法正确初始化建筑。
关于java 继承 - 我需要一个数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33728657/