如果我不在扩展类中调用可选的超级方法或构造函数,会发生什么情况?

对于Serimer

让我们考虑一下Asynctask类。

它具有可重写的方法,例如onPreExecuteonProgressUpdate等。如果我不添加super.'method-name'等编译器不会给出错误。那么我应该这样做吗?当我们不必调用超级方法,调用(或不调用)超级方法什么好处?

当我们考虑扩展EditText类时,自定义之后,您需要确定调用超级构造函数。

注意:我在谈论可选的超级调用。

塔尔·卡内尔(Tal Kanel)

通常,并且通常是面向对象编程中的规则:除非有充分的理由打破它,并且您确切知道超类方法实现的全部含义,否则应始终调用超类方法。

在特定情况下AsyncTask-不需要调用超类方法,仅仅是因为它不执行任何代码。

相反的例子:如果你不会叫的超级方法Activity回调,如onCreate()onDestroy()你将完全打破了活动,并很可能什么都不会工作。这是因为此方法的超类实现会执行每个活动所需的大量工作。

因此,得出的结论是,如果您不是基类的编写者,请查找文档,以提供有关您要重写的方法的任何提示,以便知道如何进行操作,以及是否应调用超类方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果从类文件中删除超级构造函数调用,会发生什么情况?

来自分类Dev

如果从类文件中删除超级构造函数调用,会发生什么?

来自分类Dev

iOS:当我从其他类调用重写的方法时,会发生什么情况

来自分类Dev

如果我在已删除的实体上调用EF Reload,会发生什么情况?

来自分类Dev

如果方法A调用方法B并且都具有[Transaction]属性,会发生什么情况?

来自分类Dev

如果我在PHP函数的末尾不包含“返回”,会发生什么情况?

来自分类Dev

如果我在PHP函数的末尾不包含“ return”,会发生什么情况?

来自分类Dev

当我将unpack()作为lua的函数参数调用时,会发生什么情况?

来自分类Dev

如果仅在类中重写hashCode()并在Set中使用它,会发生什么情况?

来自分类Dev

如果我们在App Delegate中的didFinishLaunching中返回NO,会发生什么情况

来自分类Dev

如果未在lambda函数中取消超时处理程序,会发生什么情况?

来自分类Dev

如果我在Spark中两次缓存相同的RDD,会发生什么情况?

来自分类Dev

如果我在GCC中编译并链接到不需要的库,会发生什么情况?

来自分类Dev

如果我取消选中“软件和更新”中的所有PPA,会发生什么情况?

来自分类Dev

如果我在不将其返回值分配给变量的情况下调用函数,会发生什么情况?

来自分类Dev

如果尝试并最终在方法中返回布尔值,会发生什么情况

来自分类Dev

将属性应用于python中的类方法时会发生什么情况?

来自分类Dev

虚拟析构函数,如果在派生类中没有析构函数,会发生什么情况?

来自分类Dev

如果我将函数主体而不是函数名称传递给setTimeout,会发生什么情况?

来自分类Dev

如果调用析构函数并将分配的内存再次用于其他对象,会发生什么情况?

来自分类Dev

如果您在接收块的末尾不再次调用该函数,会发生什么情况?-Erlang

来自分类Dev

如果调用析构函数并将分配的内存再次用于其他对象,会发生什么情况?

来自分类Dev

如果我从构造函数抛出异常,构造函数中的已分配内存会发生什么?

来自分类Dev

如果我在ReactJS或React Native的类的构造函数中使用setState()函数,将会发生什么?

来自分类Dev

当我以`even`作为生成器函数调用`even(3)`时会发生什么情况?

来自分类Dev

如果我在Git中假定未更改的早期文件集上进行更改,会发生什么情况?

来自分类Dev

如果我合并删除了我新功能的代码的提交,会发生什么情况?

来自分类Dev

使用类函数更改S4对象的“类”时会发生什么情况?

来自分类Dev

如果在构造函数中使用super调用重写的方法会发生什么

Related 相关文章

  1. 1

    如果从类文件中删除超级构造函数调用,会发生什么情况?

  2. 2

    如果从类文件中删除超级构造函数调用,会发生什么?

  3. 3

    iOS:当我从其他类调用重写的方法时,会发生什么情况

  4. 4

    如果我在已删除的实体上调用EF Reload,会发生什么情况?

  5. 5

    如果方法A调用方法B并且都具有[Transaction]属性,会发生什么情况?

  6. 6

    如果我在PHP函数的末尾不包含“返回”,会发生什么情况?

  7. 7

    如果我在PHP函数的末尾不包含“ return”,会发生什么情况?

  8. 8

    当我将unpack()作为lua的函数参数调用时,会发生什么情况?

  9. 9

    如果仅在类中重写hashCode()并在Set中使用它,会发生什么情况?

  10. 10

    如果我们在App Delegate中的didFinishLaunching中返回NO,会发生什么情况

  11. 11

    如果未在lambda函数中取消超时处理程序,会发生什么情况?

  12. 12

    如果我在Spark中两次缓存相同的RDD,会发生什么情况?

  13. 13

    如果我在GCC中编译并链接到不需要的库,会发生什么情况?

  14. 14

    如果我取消选中“软件和更新”中的所有PPA,会发生什么情况?

  15. 15

    如果我在不将其返回值分配给变量的情况下调用函数,会发生什么情况?

  16. 16

    如果尝试并最终在方法中返回布尔值,会发生什么情况

  17. 17

    将属性应用于python中的类方法时会发生什么情况?

  18. 18

    虚拟析构函数,如果在派生类中没有析构函数,会发生什么情况?

  19. 19

    如果我将函数主体而不是函数名称传递给setTimeout,会发生什么情况?

  20. 20

    如果调用析构函数并将分配的内存再次用于其他对象,会发生什么情况?

  21. 21

    如果您在接收块的末尾不再次调用该函数,会发生什么情况?-Erlang

  22. 22

    如果调用析构函数并将分配的内存再次用于其他对象,会发生什么情况?

  23. 23

    如果我从构造函数抛出异常,构造函数中的已分配内存会发生什么?

  24. 24

    如果我在ReactJS或React Native的类的构造函数中使用setState()函数,将会发生什么?

  25. 25

    当我以`even`作为生成器函数调用`even(3)`时会发生什么情况?

  26. 26

    如果我在Git中假定未更改的早期文件集上进行更改,会发生什么情况?

  27. 27

    如果我合并删除了我新功能的代码的提交,会发生什么情况?

  28. 28

    使用类函数更改S4对象的“类”时会发生什么情况?

  29. 29

    如果在构造函数中使用super调用重写的方法会发生什么

热门标签

归档