日期:2014-05-20  浏览次数:20720 次

关于overridden的问题
在   JDK   5.0   环境下,应该是支持自动类型转换的吧?
在这里   class   B   继承   class   A,并且覆写了   getNumber()   方法,为什么不能自动将返回值类型提升为   int   呢?


class   A   {
        public   int   getNumber()   {
                return   1;
        }
}

class   B   extends   A   {
        public   short   getNumber()   {
                return   2;
        }
}

------解决方案--------------------
参数和返回值的类型影响目标代码中调用函数时的栈的使用,不是你想的那么简单。
搞不好会破坏调函数调用栈。
------解决方案--------------------
不知道lz在程序中是怎么调用的,但你在B中定义了一个新的方法阿,两个方法的返回类型不同,不能算是重载
------解决方案--------------------
overridden 的时候,返回类型应该一样,就是short能转换成int也不行的!