不要在覆写的方法中用super
@Override是语义的检查,IDE会检查父类是否存在对应的方法,如果有,则检查是否允许覆写,如果是final则不允许,否则编译成功。
但是在子类覆写的方法调用super则没有了覆写的意义,而具有扩展的意义,因为你并没有取代父类的方法而是在其结果后执行了自己增加的行为
public class SuperClass { public void save() { // Perform save logic } }public class SubClass extends SuperClass {private Object b;@Overridepublic void save() { super.save(); // Performs the save logic for SuperClasssave(b); // Perform additional save logic } }
但是注意,如果父类的save方法中调用了其他的方法,且被子类覆写,那么只会调用子类的方法,因为此时只有一个this,那就是子类本身,super中的this此时已经动态链接到了子类,
任何的调用,都与父类无关,所以除非是构造函数,通常在成员函数中调用super是一种坏的味道,因为这个时候,你已经无法控制其真实的行为。
转载于:https://www.cnblogs.com/crazywings/archive/2013/06/09/3129432.html
不要在覆写的方法中用super相关推荐
- [改善Java代码]覆写equals方法必须覆写hashCode方法
覆写equals方法必须覆写hashCode方法,这条规则基本上每个Javaer都知道,这也是JDK API上反复说明的,不过为什么要这样做呢?这两个方法之间有什么关系呢?本建议就来解释该问题,我们先 ...
- 覆写equals方法
我们在写java类时,经常会覆写equals()方法,目的是根据业务判断两个对象是否相等.我们写一个Person类,会根据姓名来判断两个实例对象是否相同,代码如下: class Person{priv ...
- UINavgationController中覆写preferredStatusBarStyle方法不执行的问题
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- ...
- 子类访问父类和方法覆写
子类不能直接访问父类的私有成员: 但是子类可以调用父类中的非私有方法来间接访问父类的私有成员. Person类中有私有字段name,Student继承Person new Sudent().name; ...
- review——C# (6)虚方法和覆写方法
FROM P125 在上一节中看到,当使用基类引用访问派生类对象时,得到的是基类的成员.虚方法可以使基类的引用访问"升至"派生类内. 可以使用基类引用调用派生类(derived c ...
- Java中field的覆写_Java中方法的覆写
[套装4本]java编程思想4第4版+ 402.5元 包邮 (需用券) 去购买 > 一.方法的重写概念 之前说了子类如果继承了一个父类,那么子类就会拥有父类的方法(不包括构.造方法)和属性,此时 ...
- Java面试基础问题之(七)—— 方法的重载 VS 覆写规则
一. Java方法声明的众多属性 在讨论重载和覆写的区别之前,先补充一下Java方法的背景知识,看下面最为常见的main方法声明,为了完整介绍,自行加了异常的抛出: public static vo ...
- Java面向对象:覆写与重载
override和overload是非常容易混淆的概念. 一.override override是"覆写",是子类实现接口,或者继承父类时,保持方法签名完全相同,实现不同的方法体, ...
- java中有关覆写的总结
方法的覆写是发生继承的关系当中的,子类覆写父类的相关方法. 子类定义了了与父类同名的方法,成为覆写.在方法的覆写的时候要注意访问权限的问题,被覆写的方法不能拥有比父类更为严格的权限问题,内覆写的方法不 ...
最新文章
- mybatis中传集合时 报异常 invalid comparison: java.util.Arrays$ArrayList and java.lang.String
- PHP登录带图片,PHP登录注册完整图片验证码实现
- 软件测试 学习之路 CSS (二)
- gateway动态路由_微服务与网关技术(SIA-GateWay)
- Spring -- 入门,装备集合,自动装配,分散装配,自定义编辑器
- C程序设计语言现代方法02:C语言基本概念
- BZOJ2653middle——二分答案+可持久化线段树
- php filesize() 方法返回的文件大小异常
- Android 软件重新加载,【BUG系列】Android 点击 Home 键后再点击 APP图标,APP 重新启动了...
- svn如何提取文件更新列表
- 计算机if函数自动填充,Excel表格函数怎么能实现自动填充-excel填充函数,excel表格根据公式自动填充...
- 如何更新微软的html,如何升级微软2018 Windows 10更新四月正式版17134系统?
- Bandwagon centos 6 32位配置SVN,apache,mysql和php
- MHA binlogserver
- LOL召唤师信息查询工具(可查服务器、段位、胜点,隐藏分、战斗力)
- EastWave应用案例:同轴线仿真
- 关于我和计算机的故事
- 从9个组件开始,教你如何高效的阅读nginx源码?
- 解决小程序Failed to load localimage resource/pages/index/index/in.jpgtheserverrespondedwithastatusof500问题
- leaflet 使用 wmts
热门文章
- python中itemgetter函数_Python中的sorted函数以及operator.itemgetter函数
- c++ set遍历_Python算法学习之图与图的遍历
- 免费下载 |《数据分析从理念到实操》白皮书上线!先收藏!
- 视频 + PPT | 财富管理转型,券商如何精细化运营?
- 《CSS蝉意花园读书精记》(基础篇---------上.资料篇1)
- DC的网络连接端口与防火墙设置[为企业部署Windows Server 2008系列十]
- [Angularjs]过滤器
- xipian的php中文分词
- vc开发soap客户端(方式一)
- SQLServer更改sa用户名