背景
每次看到重写那里写着:
重写机制是指子类的方法的方法名、参数表、返回值与父类中被重写的方法都相同,而方法体不同。
而重载是:
方法名与父类中的相同,而参数表不同,则属于同名方法的重载。
本来的感觉是只要参数表相同就不是了重载了,那就该是重写了吧。但是书上的那句话却明明写着返回值也相同。所以要试试。
实验
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;
}
}
显而易见,返回值也要相同的!
最后
了了一件心事。暂时先把这个当成一个现实,这么做肯定有它的原因。至于判断好像涉及到了编译原理的内容,还用静态编译啊动态编译之类的……现在还不懂,以后再说。