答:
随便写了下,有不对的请见谅
床类:
/*
* 床 具有睡觉功能
*/
public class Bed implements SleepSpace {
//单双人床
private int num;
public Bed(int num) {
this.num = num;
}
//单人床1人,双人床2人
public int getSleepCapacity() {
return num;
}
}
两用沙发类:
/**
* 两用沙发,具有睡觉和坐下的功能
*/
public class Sleep implements SleepSpace,SeatSpace{
//座位数为3
public int getSeatCapacity() {
return 3;
}
//床位数为2
public int getSleepCapacity() {
return 2;
}
}
沙发类:
/**
* 沙发,具有坐下的功能
*/
public class Sofa implements SeatSpace {
//单双人沙发
private int num;
public Sofa(int num) {
this.num = num;
}
//单人沙发1人,双人沙发2人(双人沙发题目中没有说明是否具备睡觉功能,这里只考虑坐下)
public int getSeatCapacity() {
return num;
}
}
坐下功能接口:
public interface SeatSpace {
int getSeatCapacity();
}
睡觉功能接口:
public interface SleepSpace{
int getSleepCapacity();
}
MainApp:
public class MainApp{
public static void main(String[]args){
Sleep sofaBed =new Sleep();
SleepSpace bed[]=new SleepSpace[3];
bed[0]=new Bed(1);//单人床
bed[1]=new Bed(2);//双人床
bed[2]=sofaBed;//两用沙发可当床
SeatSpace sofa[]=new SeatSpace[3];
sofa[0]=new Sofa(1);//单人沙发
sofa[1]=new Sofa(1);//单人沙发,根据题目是两个单人沙发
// sofa[1]=new Sofa(2);//双人沙发
sofa[2]=sofaBed;//两用沙发
//统计床位数
int bedCapacity=0;
for(int i=0;i<bed.length;i++){
bedCapacity+=bed[i].getSleepCapacity();
}
//统计座位数
int sofaCapacity=0;
for(int i=0;i<sofa.length;i++){
sofaCapacity+=sofa[i].getSeatCapacity();
}
System.out.println("床位数:"+bedCapacity);
System.out.println("座位数:"+sofaCapacity);
}
}