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

背景

每次看到重写那里写着:

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

而重载是:

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

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

实验

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;
}
}

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

最后

了了一件心事。暂时先把这个当成一个现实,这么做肯定有它的原因。至于判断好像涉及到了编译原理的内容,还用静态编译啊动态编译之类的……现在还不懂,以后再说。

上一篇:JS escape、encodeURI 、encodeURIComponent 编码与解码[转]


下一篇:FineUI常见问题