JavaSE--接口在开发中的作用
一、举个例子
// 接口:菜单
public interface FoodMenu{
// 西红柿炒鸡蛋
void scd();
// 炒鸡蛋
void yxrs();
}
// 中餐厨师
public class ChinaCooker implements FoodMenu{
public void scd(){
System.out.println("中国厨师的scd");
}
public void yxrs(){
System.out.println("中国厨师的yxrs");
}
}
// 美国厨师
public class AmericCooker implements FoodMenu{
public void scd(){
System.out.println("美国厨师的scd");
}
public void yxrs(){
System.out.println("美国厨师的yxrs");
}
}
// 顾客
public class Customer{
// Customer has a FoodMenu
// 凡是能够用 has a 来描述的,统一以属性的方式存在
private FoodMenu foodMenu;
// FoodMenu foodMenu = new ChinaCooker();// 顾客想吃中餐
// FoodMenu foodMenu = new AmericCooker();// 顾客想吃西餐
public Customer(){
}
// 点菜
public void order(){
// 调用get方法拿菜单
// FoodMenu fm = this.getFoodMenu();
// 也可以不调用,因为在本类中私有的属性可以访问
foodMenu.scd();
foodMenu.yxrs();
}
public Customer(FoodMenu foodMenu){
this.foodMenu = foodMenu;
}
public void setFoodMenu(FoodMenu foodMenu){
this.foodMenu = foodMenu;
}
public FoodMenu getFoodMenu(){
return foodMenu;
}
}
// 测试
public class Test{
public static void main(String[] args){
// 创建一个厨师对象
FoodMenu cooker1 = new ChinaCooker();
// FoodMenu cooker2 = new AmericCooker();
// 创建顾客对象
Customer customer = new Customer(cooker1);
// 顾客点菜
customer.order();
}
}