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

方法重载(overloading)和重写(overriding)都与【返回类型】无关??
方法重载应该是和返回类型无关的,那么子类中重写的方法是否也可以返回与父类方法不同的类型呢?

------解决方案--------------------
子类重写父类的方法,在1.5以前覆盖是强制要求返回类型子类完全跟父类一样,在1.5以后的版本都支持子类返回类型跟父类方法的返回类型兼容即可。
------解决方案--------------------
探讨
方法重载应该是和返回类型无关的,那么子类中重写的方法是否也可以返回与父类方法不同的类型呢?

------解决方案--------------------
不是的!
方法重载的定义是:在同一类中方法名相同参数列表不同的方法
所以根据定义就可以知道方法重载只跟参数列表有关 与返回类型无关

方法重写:必须在有继承关系的基础上,也就是在子类与父类间
子类重写父类方法,可以理解为子类将父类的方法重新定义,覆盖父类的方法,也就是返回类型和父类方法相同

楼上说的和父类兼容即可我也没有试过


------解决方案--------------------
不行吧,只能是有继承关系的返回值
------解决方案--------------------
个人认为相同
------解决方案--------------------
子类继承父类方法,那就是一种规范,必须被重写,且方法名,参数类型,返回值都必须一致。


------解决方案--------------------
哦 对了补充一点 JAVA和C#不一样的是 java可以不用OVERRIDE关键字 就能重写父类的方法
public class A{
public void f() {
System.out.println("hello,A");
}
}
public class B extends A{
public void f() {
System.out.println("hello,B");
}
}
public class c
{
public static void main(String[] args)
{
A a1=new B();
a1.f();
}

}
------解决方案--------------------
方法重载是指在一个类中 几个方法拥有同样的方法名 而参数列表中的参数个数或者是参数的类型不同
方法重写是指 子类继承父类 子类中有一个和父类中同样的方法 那么在调用的时候子类可以调用重写之后的这个方法 我也刚学 望多多指教 相联系我的话 QQ15311797