您的位置:首页 > 编程语言 > Java开发

【Java 小实验】重写(覆写 Override)返回值类型能不能相同

2013-12-04 12:38 260 查看
背景

每次看到重写那里写着:


重写机制是指子类的方法的方法名、参数表、返回值与父类中被重写的方法都相同,而方法体不同。


而重载是:


方法名与父类中的相同,而参数表不同,则属于同名方法的重载。


本来的感觉是只要参数表相同就不是了重载了,那就该是重写了吧。但是书上的那句话却明明写着返回值也相同。所以要试试。

实验

class dad {
void chouyan(int num) {
System.out.println("哈哈,我每天抽 " + num + "根烟!" );
}
}

class sun extends dad {
//    下面的会提示错误:
//    Multiple markers at this line
//    - The return type is incompatible with
//     dad.chouyan(int)
int chouyan(int num) {
System.out.println("我不会抽烟,把烟还给你");
return num;
}
}


显而易见,返回值也要相同的!

最后

了了一件心事。暂时先把这个当成一个现实,这么做肯定有它的原因。至于判断好像涉及到了编译原理的内容,还用静态编译啊动态编译之类的……现在还不懂,以后再说。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐