标题: 重写的返回类型的错误 [打印本页] 作者: 马雨铎 时间: 2011-7-30 00:20 标题: 重写的返回类型的错误 class math
{
public int add()
{
return 10 + 15;
}
}
public class Son extends math
{
public float add()
{
return 6.32f + 1536f;
}
public static viod main(String args[])
{
math m = new Son();
System.out.println(m.add());
}
}
编译总是不能通过。这是为什么?作者: 匿名 时间: 2011-7-30 00:24 标题: 回复 楼主 的帖子 [code]class math
{
public float add()
{
return 10 + 15;
}
}
public class Son extends math
{
public float add()
{
return 6.32f + 1536f;
}
public static void main(String args[])
{
math m = new Son();
System.out.println(m.add());
}
}[/code]作者: 詹季春 时间: 2011-7-30 00:39
楼上正解:)
[ 本帖最后由 詹季春 于 2011-07-30 00:43 编辑 ]作者: 匿名 时间: 2011-7-30 00:44
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
和重载别混淆了。春哥正解~:lol