黑马程序员技术交流社区

标题: 重写的返回类型的错误 [打印本页]

作者: 马雨铎    时间: 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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2