【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; } }
显而易见,返回值也要相同的!
最后
了了一件心事。暂时先把这个当成一个现实,这么做肯定有它的原因。至于判断好像涉及到了编译原理的内容,还用静态编译啊动态编译之类的……现在还不懂,以后再说。
浙公网安备 33010602011771号