gpt4 book ai didi

android - 我应该在自定义代码之前调用 super.xxxx() 还是在覆盖方法之后调用?

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:47 24 4
gpt4 key购买 nike

我应该在自定义代码之前调用 super.xxxx() 还是在覆盖方法之后调用?
是否有一些技巧可以识别?

最佳答案

简短的回答:视情况而定。

长答案:您需要了解父类中方法的实现是做什么的。

  • 有些情况下, super 方法会执行一些“初始化”工作,以使被覆盖的方法顺利运行。在这种情况下,super.myMethod() 调用应该是方法中的第一行。
  • 在其他一些情况下,父类中方法的实现可能负责一些清理(或某种终结)操作。那时您需要在重写实现的最后行调用super
  • 还有一些情况,顺序无关紧要,但你必须调用super方法,因为基类中的实现执行了一些必要的操作;尽管这些操作的顺序无关紧要。大多数 Activity 生命周期方法都属于这一类。这就是为什么您必须调用 super.onCreate() 尽管您可以在 onCreate() 中的任何时候调用。<
  • 最后,还有一些情况是不需要调用super方法的。基类有一个默认实现,您可以选择使用或忽略它。您可能还会在这里执行 if-else:例如,您可能会调用 super 实现。如果它返回一个 null,您可以创建一个新对象并返回它。

Is there some skills to Identify?

  • 阅读方法文档,看看是否提到必须调用 super 方法的顺序。
  • 浏览基类的源代码,看看您是否能弄清楚它是否做了任何需要按特定顺序调用它的事情。

关于android - 我应该在自定义代码之前调用 super.xxxx() 还是在覆盖方法之后调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com