因为 Stack.pop() 就是返回的 object型的对象 ,你不能更改返回类型的啊!
所以第一个会出错.建议你是使用 JDK1.5 的用法.

解决方案 »

  1.   

    回复人: abcdhy(程旭) ( ) 信誉:100
    因为 Stack.pop() 就是返回的 object型的对象 ,你不能更改返回类型的啊!
    ************
    我为什么不能,为什么不能向上转???
    class IntegerStack extends Stack{     
          public Integer pop(){//着这也不行呀!!!
             return new Integer(2);
          }

    }
      

  2.   

    具有相同名字的方法是通过方法参数的类型和个数来区分,不能只通过返回值   public Object push(Integer item) {        return super.push(item);
        }//可以
     public Integer push(Integer item) {        return (Integer)super.push(item);
        }//可以
      

  3.   

    我的目的不是区分,而是重写!
    我的意图是重写java的Stack 类
      

  4.   

    看Stack是不是执行了哪个接口,而这个接口就是要求返回Object,所以你不能改;
    再说返回Object是很有道理的,因为java没有模板,所以不能根据模板机制生成针对某一种对象的容器,所以只好所有的都保存Object,这样可以保存所有的对象都可以往容器里存。
      

  5.   

    废话,根本不是重载的问题,只有返回类型不同的两个方法怎么能叫重载?
    是重写或者覆盖,重写的时候当然不能改了.
    你试一下写一个返回int的equals的方法