接口的应用
我们平时去吃饭就有接口,食谱菜单就是接口。顾客是调用者。厨师是实现者。
代码如下
//食谱菜单
public interface FoodMenu {
void xiHongshichaoDan();
void yuXiangRousi();
void laJiaoChaoRou();
}
//山东厨师(接口的实现者)
public class ShandongCooker implements FoodMenu{
private String name;
public ShandongCooker(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void xiHongshichaoDan() {
System.out.println(this.getName() + "做的西红柿炒蛋");
}
@Override
public void yuXiangRousi() {
System.out.println(this.getName() + "做的鱼香肉丝");
}
@Override
public void laJiaoChaoRou() {
System.out.println(this.getName() + "做的辣椒炒肉");
}
}
//重庆厨师(接口的实现者)
public class ChongqingCooker implements FoodMenu{
private String name;
public ChongqingCooker(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void xiHongshichaoDan() {
System.out.println(this.getName() + "做的西红柿炒蛋");
}
@Override
public void yuXiangRousi() {
System.out.println(this.getName() + "做的鱼香肉丝");
}
@Override
public void laJiaoChaoRou() {
System.out.println(this.getName() + "做的辣椒炒肉");
}
}
//顾客向菜单点菜
public class Customer {
public void order(FoodMenu foodMenu){
foodMenu.xiHongshichaoDan();
foodMenu.yuXiangRousi();
foodMenu.laJiaoChaoRou();
}
}
public class Test {
public static void main(String[] args) {
//创建山东厨师对象
ShandongCooker shandongCooker = new ShandongCooker("山东厨师");
//创建顾客对象
Customer customer = new Customer();
customer.order(shandongCooker);
//创建重庆厨师对象
ChongqingCooker chongqingCooker = new ChongqingCooker("重庆厨师");
customer.order(chongqingCooker);
}
}