如何解决我应该将超级调用放在Android事件处理程序中的什么位置?
| 在阅读“ Hello,Android”时,我注意到一个问题。 当他在Activity中实现onCreate()时,它看起来像: { super.onCreate(..); ... ... } 但是onSizeChanged()看起来像: { ... ... super.onSizeChange(); } 而且他不会在onDraw()中调用super。 我应该在哪里放置超级通话说明?在Android的文档中哪里可以找到答案?解决方法
在子类中任何覆盖的方法中,super.methodname()的位置通常是该方法中的第一件事,例如
onCreate()
。但是,有时您需要在调用super之前执行其他步骤,因此您可以像onSizeChanged()
方法中那样进行操作。超级调用是根据此条件而不是其他任何规则确定的。
,在很多情况下,当您考虑在宏的事物方案中覆盖的功能出现在什么地方时,这个问题的有用答案就会出现。
如果您要调用的东西起初始化器的作用,那么super
调用应该(通常)在开头,因为您希望在尝试初始化子类之前先初始化基类。
如果您要调用的行为类似于清理例程,则通常应在末尾进行super
调用,因为您想在超类清理自身之前清理所有片段。
对于在任意时间出现的呼叫,这将取决于您覆盖的呼叫的性质。如果您想在框架进行计算之前先做一些事情,以便可以影响它们的结果,则需要在最后调用super
。如果要基于超类的计算进行计算,则super
调用应从头开始。
简而言之,没有固定的规则:这取决于您要重写的特定方法的功能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。