A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马雨铎 黑马帝   /  2011-7-30 00:20  /  1543 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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());
        }
}
编译总是不能通过。这是为什么?

评分

参与人数 1技术分 +1 收起 理由
admin + 1 贴代码得说明下怎么做的!

查看全部评分

3 个回复

正序浏览
黑马网友  发表于 2011-7-30 00:44:02
板凳
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
和重载别混淆了。春哥正解~:lol
回复 使用道具 举报
楼上正解:)
[ 本帖最后由 詹季春 于 2011-07-30  00:43 编辑 ]
回复 使用道具 举报
黑马网友  发表于 2011-7-30 00:24:54
沙发

回复 楼主 的帖子

[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]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马