public Object createCopy(Integer source) {
            return (Integer)source;
        }
 public Object createCopy(Long source) {
            return (Long)source;
        }
 public Object createCopy(Float source) {
            return (Float)source;
        }
方法的重载 赫赫 

解决方案 »

  1.   

    一般来说,OO的好处很难在函数级别体现出来,在对象或者架构级别才看得出OO的威力!
      

  2.   

    wenjie20001(小狗狗) 你的方法重载是不行的, 你看看他传如的参数吧, 类型是Object, 
    你怎么使用你的createCopy(Integer source) 方法? 除非转型, 你又怎么知道这个Object的类型? 倒头来还是要用instance语句. 其实这个例子没有什么好的办法优化, 因为你的Integer, Long这些是jdk的类,而且你传入的又是Object 不可避免要进行转型. 如果是自己定义的类的话, createCopy定义在每个类里面就好了. 比如我有个类A 也有个类B 他们都继承接口Interface, Interface里有个createCopy方法. A 和 B都覆写了这个方法. 这样你可以把A和B都做为 Interface类型来传递, 在要createCopy的时候调用Interface的createCopy的方法就好了. 就象这样.Interface a = new A();
    Interface b = new B();
    a.createCopy();
    b.createCopy();
    看 你不需要知道a 和 b的实际类型吧, 这样就很好的实现了多态性