java继承-我需要数组吗?

java继承-我需要数组吗?,java,inheritance,Java,Inheritance,我需要一个名为building的通用基类,它存储一个建筑的楼层数 房间数量及其总面积。我还需要一个名为house的派生类,它继承 建筑和仓库的数量卧室和浴室,以及另一个 名为office的派生类,它也继承了建筑并存储灭火器和灭火器的数量 电话 我必须创建一个Java应用程序来演示这个类层次结构,并提供所有必要的 方法。这些类必须使用以下主要方法进行测试 public class TestBuildings { public static void main(String[] args)

我需要一个名为building的通用基类,它存储一个建筑的楼层数 房间数量及其总面积。我还需要一个名为house的派生类,它继承 建筑和仓库的数量卧室和浴室,以及另一个 名为office的派生类,它也继承了建筑并存储灭火器和灭火器的数量 电话

我必须创建一个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");
 }
}
这就是我为班级建设所做的

这是我的教室

最后是班级办公室

我的问题是,我必须在三个类中添加、减去或修改什么才能使主方法起作用?我需要数组吗


任何帮助都将不胜感激。谢谢

您必须为您的建筑、房屋和办公室创建具有参数的构造函数。例如,对于建筑:

public building(int floors, int rooms, int sqft) {
    this.floors = floors;
    this.rooms = rooms;
    this.sqft = sqft;
}
构建没有指定参数的建筑对我来说没有意义-因此建筑应该具有指定的楼层、房间、平方英尺,至少您应该提供一些默认值:

public class building {
    private int floors = 1;
    private int rooms = 1;
    private int sqft = 1; // Have no idea what is default value here
    ...
}
然后将house定义为从building扩展而来的类。这意味着您的教室是一栋建筑,必须指定楼层、房间和平方英尺才能建造:

 public class house extends building {
    private int bedrooms;
    private int baths;

    public house(int floors, int rooms, int sqft) {
       super(floors, rooms, sqft);
    }
    ...
 }

再说一次,只有卧室和浴室的房屋建造师没有意义,因为没有指定的楼层、房间和sqt信息,所以无法正确初始化建筑。

这3个类应该实现可序列化的建筑、房屋、办公室和。。。。?你有什么问题?主方法目前不起作用吗?如果没有,它应该做什么,它在做什么?此外,命名约定也是您的朋友<代码>房屋延伸建筑-->
房屋延伸建筑
这是正确的答案,但它没有解释他如何从办公室和房屋使用super(楼层、房间、平方英尺)。你能解释一下从办公室和房屋使用super(楼层、房间、平方英尺)吗@我现在就去拿。谢谢@尼亚夫罗
public class building implements java.io.Serializable
{
 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;

 }
}
public class building {
    private int floors = 1;
    private int rooms = 1;
    private int sqft = 1; // Have no idea what is default value here
    ...
}
 public class house extends building {
    private int bedrooms;
    private int baths;

    public house(int floors, int rooms, int sqft) {
       super(floors, rooms, sqft);
    }
    ...
 }
public class building implements java.io.Serializable
{
 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;

 }
}