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

Java方法重写问题
方法重写可不可以改变返回值的类型?

如果不可以,那以下代码又怎么解释呢?

Java code

class A {
    public Object fun() {
        return null;
    }
}
class B extends A {
    public String fun() {
        return null;
    }
}





------解决方案--------------------
你们不要误导,刚查了一下,在java core第七版690页中明确写到,jdk5.0以后,覆盖方法可以返回原方法的了类型
------解决方案--------------------
为此专门写了一个博文,大家可以看看。
Java里面Override的返回值是否必须和父类相同?
------解决方案--------------------
引用楼主 xiaozhuaizhuai 的帖子:
方法重写可不可以改变返回值的类型?

如果不可以,那以下代码又怎么解释呢?


Java code
class A {
public Object fun() {
return null;
}
}
class B extends A {
public String fun() {
return null;
}
}

------解决方案--------------------
10)private实例方法总是不能被继承的,因而总是不会被重写的。