我应该在自定义代码之前调用super.xxxx(),还是在覆盖方法之后调用? 是否有识别技能?
答案 0 :(得分:6)
简短的回答:它取决于。
答案很长: 您需要了解父类中方法的实现。
super.myMethod()
调用应该是方法中的第一行。super
last 行。Activity
生命周期方法都属于这一类。这就是必须致电super.onCreate()
的原因,尽管您可以在onCreate()
中随时拨打。{/ li>
null
,您可以创建一个新对象并返回该对象。是否有识别技能?
super
方法的顺序。答案 1 :(得分:0)
(非常OOPy)一般来说,想法是在你需要父母的功能时调用super。我知道这似乎很明显,但它涉及到清理功能:
Init:
super.init
... your initialization code
Delete:
... your deletion code here <-- important
super.delete
SomeOtherRandomMethod:
... your code may go here if it does not need any state from the parent
super.SomeOtherRandomMethod
... otherwise it can go here
我发现在覆盖开始时调用超级代码更简单/更清晰(除非有一些真正的特定原因没有),并确保我调用父代的destroy / 之后删除/免费/销毁我已经完成了自己的清理工作(我们绝对不希望父对象从我们手中转出!)