gpt4 book ai didi

java - 如果我不在扩展类中调用可选的 super 方法或构造函数会怎样?

转载 作者:搜寻专家 更新时间:2023-11-01 07:55:32 26 4
gpt4 key购买 nike

让我们考虑一下 Asynctask 类。

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

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

注意:我说的是可选的 super 调用。

最佳答案

一般来说,作为面向对象编程的规则:除非你有充分的理由打破它,并且你确切地知道父类(super class)方法实现的全部内容,否则你应该始终调用父类(super class)方法。

AsyncTask 的特定情况下 - 不需要调用父类(super class)方法,只是因为它不执行任何代码。

相反的例子:如果你不会调用 Activity 回调的 super 方法,比如 onCreate()onDestroy() 你会完全破坏 Activity ,可能什么都不会起作用。那是因为此方法的父类(super class)实现会执行每个 Activity 所需的大量操作。

因此结论是,如果您不是基类的作者 - 请查找提供有关您要覆盖的方法的任何提示的文档,以便知道如何覆盖,如果有的话,您应该调用父类(super class)方法。

关于java - 如果我不在扩展类中调用可选的 super 方法或构造函数会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28217046/

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