A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 血剑无痕 中级黑马   /  2013-10-13 09:13  /  966 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


public class Banana implements Fruit{
//获得香蕉
   public void get(){
        System.out.println("采集香蕉");
    }
}
public class Apple implements Fruit{
    /*
     * 获得苹果
     */
    public void get(){
        System.out.println("采集苹果");
    }
}
public class FruitFactory {
//    /*
//     * 获得Apple类的实例
//     */
//    public static  Fruit getApple() {
//        return new Apple();
//    }
//   
//    /*
//     * 获得Banana类实例
//     */
//    public static Fruit getBanana() {
//        return new Banana();
//    }
    /*
     * get方法,获得所有产品对象
     */
    public static Fruit getFruit(String type) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
//        if(type.equalsIgnoreCase("apple")) {
//            return Apple.class.newInstance();
//            
//        } else if(type.equalsIgnoreCase("banana")) {
//            return Banana.class.newInstance();
//        } else {
//            System.out.println("找不到相应的实例化类");
//            return null;
//        }
            Class fruit = Class.forName(type);
            return (Fruit) fruit.newInstance();
        
        
    }
}
public class MainClass {
    public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
//        //实例化一个Apple
//        Apple apple = new Apple();
//        //实例化一个Banana
//        Banana banana = new Banana();
//        
//        apple.get();
//        banana.get();
        
//        //实例化一个Apple,用到了多态
//        Fruit apple = new Apple();
//        Fruit banana = new Banana();
//        apple.get();
//        banana.get();
        
//        //实例化一个Apple
//        Fruit apple = FruitFactory.getApple();
//        Fruit banana = FruitFactory.getBanana();
//        apple.get();
//        banana.get();
        
        Fruit apple = FruitFactory.getFruit("Apple");
        Fruit banana = FruitFactory.getFruit("Banana");
        apple.get();
        banana.get();
        
    }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马