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