应用面向接口的编程模拟学校接待 假设一个学校接待方面的程序,招待不同身份的人的食宿问题,其对应规则如下: 进一步扩展“外宾、上级领导”两类角色。 输出结果如下: 学生去食堂吃饭! 学生回寝室睡觉! 教师去教工餐厅吃饭! 教师回学校公寓睡觉! 家长去招待所饭馆吃饭! 家长回招待所睡觉! 外宾去酒店吃饭! 外宾回酒店睡觉! 领导去宾馆吃饭! 领导回宾馆睡觉!
时间: 2024-02-09 12:11:55 浏览: 165
为了实现面向接口的编程,可以定义一个抽象接口`Hospitality`,并让不同的角色实现该接口的方法。具体实现如下:
```java
// 定义接口
interface Hospitality {
void eat(); // 吃饭
void sleep(); // 睡觉
}
// 学生类实现 Hospitality 接口
class Student implements Hospitality {
public void eat() {
System.out.println("学生去食堂吃饭!");
}
public void sleep() {
System.out.println("学生回寝室睡觉!");
}
}
// 教师类实现 Hospitality 接口
class Teacher implements Hospitality {
public void eat() {
System.out.println("教师去教工餐厅吃饭!");
}
public void sleep() {
System.out.println("教师回学校公寓睡觉!");
}
}
// 家长类实现 Hospitality 接口
class Parent implements Hospitality {
public void eat() {
System.out.println("家长去招待所饭馆吃饭!");
}
public void sleep() {
System.out.println("家长回招待所睡觉!");
}
}
// 外宾类实现 Hospitality 接口
class Foreigner implements Hospitality {
public void eat() {
System.out.println("外宾去酒店吃饭!");
}
public void sleep() {
System.out.println("外宾回酒店睡觉!");
}
}
// 领导类实现 Hospitality 接口
class Leader implements Hospitality {
public void eat() {
System.out.println("领导去宾馆吃饭!");
}
public void sleep() {
System.out.println("领导回宾馆睡觉!");
}
}
```
然后,我们可以在客户端中创建不同的角色对象,并根据其不同的身份调用`Hospitality`接口的方法。
```java
public class HospitalityDemo {
public static void main(String[] args) {
// 创建不同的角色对象
Hospitality student = new Student();
Hospitality teacher = new Teacher();
Hospitality parent = new Parent();
Hospitality foreigner = new Foreigner();
Hospitality leader = new Leader();
// 调用接口方法,根据不同的身份输出不同的结果
student.eat();
student.sleep();
teacher.eat();
teacher.sleep();
parent.eat();
parent.sleep();
foreigner.eat();
foreigner.sleep();
leader.eat();
leader.sleep();
}
}
```
输出结果如下:
```
学生去食堂吃饭!
学生回寝室睡觉!
教师去教工餐厅吃饭!
教师回学校公寓睡觉!
家长去招待所饭馆吃饭!
家长回招待所睡觉!
外宾去酒店吃饭!
外宾回酒店睡觉!
领导去宾馆吃饭!
领导回宾馆睡觉!
```
阅读全文