关于Java中方法重写的访问修饰符和返回值类型的限制
来源:互联网 发布:人工智能柴玉梅版答案 编辑:程序博客网 时间:2024/04/30 04:18
众所周知,Java中方法重写的要求是方法签名完全相同。
方法签名是指 方法名+参数列表 。
而父类中或接口中的方法的时候重写方法的时候,除了方法签名完全相同之外,访问修饰符和返回值类型有什么限制吗?
答案是肯定的。
访问修饰符的开放范围由大到小排序是 public > protected > default > private
private类型是子类无法继承下来的, 所以父类中private修饰的方法并不能被子类重写。
废话不多说,接下来进入重点。
经过笔者的多次测试,发现访问修饰符和返回值类型虽然不必与父类中的方法相同,但也不是完全没有限制。
方法重写时:
子类中方法的访问修饰符必须 >= 父类中对应方法的访问修饰符 (访问修饰符大小关系已在本文中列出)
子类中方法的返回值类型可以和被重写方法的返回值类型相同,或者是被重写方法类型的子类型。
即 子类中方法的返回值类型必须 <= 父类中对应方法的返回值类型
以上结论对于抽象方法的实现同样适用。
因为在JDK1.7及以前的版本中,接口中所有的方法都默认是public类型的。所以说接口中的方法被重写时,其子类重写方法的访问修饰符必须是public.
由于笔者水平有限,还请大家多多批评指正。
阅读全文
2 0
- 关于Java中方法重写的访问修饰符和返回值类型的限制
- Java知识(访问修饰符、方法重写和方法重载的区别以及java抽象)
- java中访问修饰符的使用,方法重写定义,final修饰符,布局的特点等等:
- Java中访问限制修饰符的不足
- java :引用类型的转换 方法重载和重写 构造函数 修饰符
- Java中private、protected、public和default修饰符的访问限制
- java方法的重载与重写的返回值类型
- 访问权限修饰符对方法的访问限制
- JAVA方法访问修饰和类的成员访问修饰
- 类、对象、继承、封装、多态、方法的重载和重写、Java的访问修饰符与其它关键字
- Java反射----Field的getModifiers()方法返回int类型值表示该字段的修饰符
- java中接口的属性、方法的默认修饰符和类的属性、访问修饰符的区别
- java中接口的属性、方法的默认修饰符和类的属性、访问修饰符的区别
- c++与java中关于访问修饰符的区别
- Java子父类初始化顺序,及重写方法后的访问修饰符,异常抛出
- 关于Java的访问控制修饰符
- 关于Java的访问控制修饰符
- 关于Java中各种修饰符与访问修饰符的说明
- Struts poi 导出
- 卸载mysql+安装lamp环境(楼主2017版本)
- KVC ,NSKeyValueCoding 浅谈
- css 的一些属性使用
- redis
- 关于Java中方法重写的访问修饰符和返回值类型的限制
- 关于电源做了倒灌处理,以更快的泄放电压的例子
- A. Sereja and Algorithm----思维+贪心
- 数据结构课设(散列表的设计与实现)
- 附加的XML和正则表达式
- 最大堆、索引堆、二叉搜索树的JavaScript实现
- jquery实现移动端数据列表返回原来位置
- IDEA jetty
- 公式