炫意html5
最早CSS3和HTML5移动技术网站之一

为什么方法重写时,返回值类型如果是基本数据类型时必须和父类的返回值类型相同?

为什么方法重写时,返回值类型如果是基本数据类型时必须和父类的返回值类型相同?

其余的几个还是理解的,比如权限修饰符:子类>=父类(这是因为我们在使用多态的时候经常把子类向上转型为父类,进而父类.方法(形参列表)。而“父类.方法(形参列表)”这个语句能够编译成功没有报错,说明该方法的权限修饰符是可以在调用该方法的语句块中执行的,所以如果子类的被重写的方法的权限修饰符是大于等于父类该方法的权限修饰符,那么多态时就一定可以调用子类重写的方法,也就是运行时权限修饰符要大于等于编译器权限修饰符,这样才能保证运行时满足权限。)

返回值类型如果是引用数据类型:子类<=父类(这同样是因为多态,我们将子类向上转型为父类后,调用父类重写的方法,得到返回值,因为java是个强类型语言,所以编译期间要给返回值赋予类型。如果这个编译期间的返回值类型需要大于等于运行时期的返回值类型!)

但是就是不理解为什么返回值类型如果是基本数据类型时必须和父类的返回值类型相同,求大佬解惑

回答

看官方文档吧,java语言文档,jvm文档,
https://docs.oracle.com/javase/specs/index.html

炫意HTML5 » 为什么方法重写时,返回值类型如果是基本数据类型时必须和父类的返回值类型相同?

Java基础教程Android基础教程