【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; } }
显而易见,返回值也要相同的!
最后
了了一件心事。暂时先把这个当成一个现实,这么做肯定有它的原因。至于判断好像涉及到了编译原理的内容,还用静态编译啊动态编译之类的……现在还不懂,以后再说。
相关文章推荐
- java中函数覆盖(即重写override),子类的返回类型一定要和父类一样吗?
- java初学者--浅谈override与返回类型
- JAVA 子类方法签名相同 返回类型不同
- 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
- Java常考面试题8 深刻认识JAVA重载和重写 以及是否可以根据返回类型来区分重载
- 函数重写(override)与协变返回类型(covariant return type)
- C++基础::语法特性::函数重写(override)与协变返回类型(covariant return type)
- 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
- java方法的重载与重写的返回值类型
- java中相同名字不同返回类型的方法
- JAVA中继承时方法的重载(overload)与重写/覆写(override)
- Java程序低手之Override返回类型以及Unicode和StringBuilder
- 重载(overload)和重写(override)的区别?重载的方法能否根据返回类型进行区分?
- 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
- 记录:java执行mysql语句查询字段类型:timestamp返回页面显示会多出个 .0,自己如何处理的
- java实现具有相同属性名称及相似类型的pojo、dto、vo等的互转
- Java 重写(Override)与重载(Overload)
- java中返回任意类型值( <V> V get(Object obj))
- java中调用oracle procedure或者function返回类型的问题
- Java方法重写方法体可以相同