java 子类重写父类的方法的注意事项
2019独角兽企业重金招聘Python工程师标准>>>
若想实现一个合格重写方法,而不是重载,那么必须同时满足下面的要求!
A、重写规则之一:重写方法不能比被重写方法限制有更严格的访问级别。 (但是可以更广泛,比如父类方法是包访问权限,子类的重写方法是public访问权限。)
比如:Object类有个toString()方法,开始重写这个方法的时候我们总容易忘记public修饰符,编译器当然不会放过任何教训我们 的机会。出错的原因就是:没有加任何访问修饰符的方法具有包访问权限,包访问权限比public当然要严格了,所以编译器会报错的。
B、重写规则之二:参数列表必须与被重写方法的相同。 重写有个孪生的弟弟叫重载,也就是后面要出场的。如果子类方法的参数与父类对应的方法不同,那么就是你认错人了,那是重载,不是重写。
C、重写规则之三:返回类型必须与被重写方法的返回类型相同。
父类方法A:void eat(){}
子类方法B:int eat(){} 两者虽然参数相同,可是返回类型不同,所以不是重写。
父类方法A:int eat(){}
子类方法B:long eat(){} 返回类型虽然兼容父类,但是不同就是不同,所以不是重写。
D、重写规则之四:重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。但是可以抛出更少,更有限或者不抛出异常。
E、重写规则之五:不能重写被标识为final的方法。
F、重写规则之六:如果一个方法不能被继承,则不能重写它。
转载于:https://my.oschina.net/u/1266221/blog/889547
java 子类重写父类的方法的注意事项相关推荐
- java 子类重写父类的方法应注意的问题
若想实现一个合格重写方法,而不是重载,那么必须同时满足下面的要求! A.重写规则之一: 重写方法不能比被重写方法限制有更严格的访问级别. (但是可以更广泛,比如父类方法是包访问权限,子类的重写 ...
- java 子类继承父类各方法的执行顺序
结论: java中子类继承父类各方法的执行顺序:(这里只写jvm自动调用的方法的顺序,包括静态代码块.代码块.构造方法) 1.第一次创建子类对象 父类静态代码块 子类静态代码块 父类代码块 父类构造方 ...
- java子类调用父类的方法
当一个类继承于另一个类,子类中没有父类的方法时,用子类的对象调用方法时,会首先在子类中查找,如果子类中没有该方法,再到父类中查找. 当一个方法只在父类中定义时,调用该方法时会使用父类中的属性. 如果该 ...
- java如何调用父类的实例对象_java子类调用父类的方法中包含子类重写的实例方法...
java子类调用父类的方法中包含子类重写的实例方法 # 看题目是不是很绕,这个我也不知道怎么才能更简单的表达了 # 先看代码: public class Common { public static ...
- 关于子类重写父类方法的问题
关于访问修饰符对重写父类方法的影响 结论 代码样例 子类 结论 子类重写父类的方法: 1.父类中私有方法不能被重写.因为父类私有方法子类可理解为被子类继承,但是不被子类可见,不可访问,当然就无法重写了 ...
- Python OOP:继承、单继承、多继承、__mro__、子类重写父类同名属性和方法、子类调用父类同名属性和方法、多层继承、super()、私有(实例)属性和方法、获取修改私有属性值、私有类属性
一.继承 Python⾯向对象的继承指的是多个类之间的所属关系,即⼦类默认继承⽗类的所有属性和⽅法. 继承作用:继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 在P ...
- java 调用父级方法_java子类调用父类的方法是什么
java子类调用父类的方法:1.子类的对象调用方法时,会首先在子类中查找,如果子类中没有该方法,再到父类中查找:2.如果该方法中又调用了其他方法,那么还是按照之前的顺序,先在子类中查找,再在父类中查找 ...
- java多态实现示例,以及子类重写父类方法调用父类方法
多态 多态存在的三个必要条件:继承,重写,父类引用指向子类对象, 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则error:如果有,调用子类的同名方法. example: pack ...
- java子类可以修改父类成员吗_子类重写父类成员方法
最近在学习到Java的继承和多态时遇到了这样的一个问题:关于继承链中子类对父类的私有方法是否可以覆盖的问题,在此记录一下自己对这个问题解决以后的一些心得. 首先要明确:子类是不能够覆盖(重写)父类的私 ...
最新文章
- svn上crlf怎么设置_svn如何设置svn:ignore
- python下载图片-python下载百度图片,python图片下载程序
- centos php5.3 yum 安装 php53-mcrypt
- JdbcTemplate类中的execute方法
- 网页上符号显示成方框_如何在word、PPT、Excel以及PDF中添加带√的方框
- Ocelot.JwtAuthorize:一个基于网关的Jwt验证包
- Linux的open函数的调用过程,Linux 中open系统调用实现原理
- JSP静态导入与动态导入
- 服务器与HTML客户端通信,服务器与HTML客户端通信
- 常用SQL语句优化技巧
- MyBatis查询返回Map类型数据
- 鼠标单击元素输出对应元素的索引号
- 市场调查报告写作的基本要求
- 王者荣耀同一微信号多个服务器,王者荣耀微信怎么切换账号?打不上省排?那就换个荣耀战区好了...
- oracle delete加并发,并发delete导致oracle***锁问题的解决
- CodeLite配置
- 不懂编程?节点包来凑——Dynamo常用节点包推荐(下)
- 实习一月记——美团点评云计算部
- 京东商城暂停所有地铁自提点:或因租金成本高
- 如何看待阿里云要做“全球产业AI的拓荒者”?
热门文章
- 转 java学习笔记(必看经典)
- 【星辰傀儡线·命运环·卷二 尘埃】 5 困惑
- python.day.10——面向对象(二)
- C/C++-标准输入/输出重定向为文件输入/输出
- openwrt 安装 ser2net 配置
- WebBrowser
- 每周一荐: Google Dictionary,The Polar Express
- ArcSDE 9.1 for Oracle10g on Solaris 10
- NutzWk 5.2.4 发布,Java 微服务分布式开发框架
- framebuffer的入门介绍-实现程序分析【转】