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(); }}