让我们考虑一下Asynctask类。
它具有可重写的方法,例如onPreExecute,onProgressUpdate等。如果我不添加super.'method-name'等,编译器不会给出错误。那么我应该这样做吗?当我们不必调用超级方法时,调用(或不调用)超级方法有什么好处?
当我们考虑扩展EditText类时,自定义之后,您需要确定调用超级构造函数。
注意:我在谈论可选的超级调用。
通常,并且通常是面向对象编程中的规则:除非有充分的理由打破它,并且您确切知道超类方法实现的全部含义,否则应始终调用超类方法。
在特定情况下AsyncTask
-不需要调用超类方法,仅仅是因为它不执行任何代码。
相反的例子:如果你不会叫的超级方法Activity
回调,如onCreate()
和onDestroy()
你将完全打破了活动,并很可能什么都不会工作。这是因为此方法的超类实现会执行每个活动所需的大量工作。
因此,得出的结论是,如果您不是基类的编写者,请查找文档,以提供有关您要重写的方法的任何提示,以便知道如何进行操作,以及是否应调用超类方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句