1,定义一个接口
public interface Phone {
public void Call();
}
2,写两个类实现此接口
public class Xiaomi implements Phone{
public void Call() {
System.out.println("小米为发烧而生");
}
}
public class IPhone implements Phone{
@Override
public void Call() {
System.out.println("使用苹果打电话");
}
}
3,定义一个类专门生产手机的类,相当于工厂
public class PhoneFactory {
// 创建一个方法用来生产手机,传入什么类型的手机就返回什么
public Phone getPhone(String phone){
if (phone.equals("XiaoMi")) {
Phone xiaomi=new Xiaomi();
return xiaomi;
}
if (phone.equals("IPhone")) {
return new IPhone();
}
return null;
}
}
4,定义一个测试类 进行测试即可
public class Test {
public static void main(String[] args) {
// 创建一个工厂类
PhoneFactory factory = new PhoneFactory();
// 使用工厂类 "生产"一个 IPhone
// "向下 转型"
IPhone iphone8 = (IPhone)factory.getPhone("IPhone");
iphone8.Call();
Phone iphone8P = factory.getPhone("IPhone");
iphone8P.Call();
Phone xiaomi = factory.getPhone("XiaoMi");
xiaomi.Call();
}
}