我应该将超级调用放在Android事件处理程序中的什么位置?

| 在阅读“ Hello,Android”时,我注意到一个问题。 当他在Activity中实现onCreate()时,它看起来像: { super.onCreate(..); ... ... } 但是onSizeChanged()看起来像: { ... ... super.onSizeChange(); } 而且他不会在onDraw()中调用super。 我应该在哪里放置超级通话说明?在Android的文档中哪里可以找到答案?     
已邀请:
在子类中任何覆盖的方法中,super.methodname()的位置通常是该方法中的第一件事,例如
onCreate()
。但是,有时您需要在调用super之前执行其他步骤,因此您可以像
onSizeChanged()
方法中那样进行操作。超级调用是根据此条件而不是其他任何规则确定的。     
在很多情况下,当您考虑在宏的事物方案中覆盖的功能出现在什么地方时,这个问题的有用答案就会出现。 如果您要调用的东西起初始化器的作用,那么
super
调用应该(通常)在开头,因为您希望在尝试初始化子类之前先初始化基类。 如果您要调用的行为类似于清理例程,则通常应在末尾进行
super
调用,因为您想在超类清理自身之前清理所有片段。 对于在任意时间出现的呼叫,这将取决于您覆盖的呼叫的性质。如果您想在框架进行计算之前先做一些事情,以便可以影响它们的结果,则需要在最后调用
super
。如果要基于超类的计算进行计算,则
super
调用应从头开始。 简而言之,没有固定的规则:这取决于您要重写的特定方法的功能。     

要回复问题请先登录注册