为什么方法重写时,返回值类型如果是基本数据类型时必须和父类的返回值类型相同?
其余的几个还是理解的,比如权限修饰符:子类>=父类(这是因为我们在使用多态的时候经常把子类向上转型为父类,进而父类.方法(形参列表)。而“父类.方法(形参列表)”这个语句能够编译成功没有报错,说明该方法的权限修饰符是可以在调用该方法的语句块中执行的,所以如果子类的被重写的方法的权限修饰符是大于等于父类该方法的权限修饰符,那么多态时就一定可以调用子类重写的方法,也就是运行时权限修饰符要大于等于编译器权限修饰符,这样才能保证运行时满足权限。)
返回值类型如果是引用数据类型:子类<=父类(这同样是因为多态,我们将子类向上转型为父类后,调用父类重写的方法,得到返回值,因为java是个强类型语言,所以编译期间要给返回值赋予类型。如果这个编译期间的返回值类型需要大于等于运行时期的返回值类型!)
但是就是不理解为什么返回值类型如果是基本数据类型时必须和父类的返回值类型相同,求大佬解惑
看官方文档吧,java语言文档,jvm文档,
https://docs.oracle.com/javase/specs/index.html
你好,文档内容太多,不知道该从何看起
@朽木自雕_狂神:
文档很详细,细枝末节很清楚,
看书吧,《疯狂Java讲义》,或许有你需要的,
其实,这是规定,遵守就是了——支持你寻根究底,再出一篇博文。
@快乐的凡人721: 好的,多谢!
@朽木自雕_狂神:
学习要会总结,好【努力】形成 【知识体系】。
在这个过程中,你会越来越厉害的。
加油。
@快乐的凡人721: 谢谢您!