在疯狂的java讲义时,书中讲到,重写要遵循两同两小一大原则,但是在其他的资料上讲的是三同一小一大.不同的是,前者讲返回类型是子类应小于等于父类的返回类型,后者讲的是等于.我用eclipse测试过了,如果子类返回类型小于父类的,编译器是会报错的,是不是java讲义过时了?
------解决方案--------------------
什么叫小于 extends 算小于(也就是说子类算小于), 还是 super 算小于(也就是说超类算小于)?
如果是extends算小于,那么是对的,如
- Java code
class A { public A getA() { return this; }}class B extends A { public B getA() { //返回类型是父类方法的子类,是可以的 return this; }}如果是super,那就不对了,如class A { public A getA() { return this; }}class B extends A { public Object getA() { //返回类型是父类方法的超类,是不可以的 return this; }}