、应用面向接口的编程模拟学校接待 假设一个学校接待方面的程序,招待不同身份的人的食宿问题,其对应规则如下: 进一步扩展“外宾、上级领导”两类角色。 输出结果如下: 学生去食堂吃饭! 学生回寝室睡觉! 教师去教工餐厅吃饭! 教师回学校公寓睡觉! 家长去招待所饭馆吃饭! 家长回招待所睡觉! 外宾去酒店吃饭! 外宾回酒店睡觉! 领导去宾馆吃饭! 领导回宾馆睡觉!
时间: 2024-02-09 13:12:05 浏览: 114
面向接口编程。
这道题目可以使用面向接口的编程模式来解决,先定义一个接口`Hospitality`,表示能够提供食宿服务的角色。然后定义不同的类实现这个接口,表示不同的角色,包括`Student`、`Teacher`、`Parent`、`Foreigner`和`Leader`。每个类中实现`Hospitality`接口的方法,分别表示吃饭和睡觉的行为。
接口定义如下:
```java
public interface Hospitality {
void eat();
void sleep();
}
```
不同角色的实现类如下:
```java
public class Student implements Hospitality {
@Override
public void eat() {
System.out.println("学生去食堂吃饭!");
}
@Override
public void sleep() {
System.out.println("学生回寝室睡觉!");
}
}
public class Teacher implements Hospitality {
@Override
public void eat() {
System.out.println("教师去教工餐厅吃饭!");
}
@Override
public void sleep() {
System.out.println("教师回学校公寓睡觉!");
}
}
public class Parent implements Hospitality {
@Override
public void eat() {
System.out.println("家长去招待所饭馆吃饭!");
}
@Override
public void sleep() {
System.out.println("家长回招待所睡觉!");
}
}
public class Foreigner implements Hospitality {
@Override
public void eat() {
System.out.println("外宾去酒店吃饭!");
}
@Override
public void sleep() {
System.out.println("外宾回酒店睡觉!");
}
}
public class Leader implements Hospitality {
@Override
public void eat() {
System.out.println("领导去宾馆吃饭!");
}
@Override
public void sleep() {
System.out.println("领导回宾馆睡觉!");
}
}
```
在主程序中,我们可以定义一个`List<Hospitality>`,将不同的角色加入列表中,然后遍历列表,调用每个角色的`eat`和`sleep`方法。
```java
public static void main(String[] args) {
List<Hospitality> guests = new ArrayList<>();
guests.add(new Student());
guests.add(new Teacher());
guests.add(new Parent());
guests.add(new Foreigner());
guests.add(new Leader());
for (Hospitality guest : guests) {
guest.eat();
guest.sleep();
}
}
```
这样就可以输出题目中要求的结果了。
阅读全文