覆盖方法时调用超类的方法的目的是什么?

Sarwar Sateer:

虽然覆盖诸如onPostExecutefrom之类的方法时AsyncTask我们可以避免或删除super.onPostExecute(result);它。您能告诉我为什么以及何时需要使用此通话吗?因为我在Main Activity中将AsyncTask实现为内部类

    private class CustomAsyncTask extends AsyncTask<String, Void, Event> {
    @Override
    protected Event doInBackground(String... strings) {
        Event result = Utils.fetchEarthquakeData(strings[0]);
        return result;
    }

    @Override
    protected void onPostExecute(Event result) {
        super.onPostExecute(result);// what is the effect of calling this? If it was possible to skip or remove it. 
        updateUi(result);
    }
    
}
Arvind Kumar Avinash:

覆盖方法时,将重新定义该方法,即,如果在子类的实例(已覆盖该方法的实例)上调用了此方法,则将调用此新版本的定义。

当您覆盖方法时(即,重新定义或换句话说,将超类定义替换为该定义的子版本),您有两种选择:

  1. 不要使用超类定义中的任何内容,而以全新的方式重写它。
  2. 在新定义的某个位置(在开头/中间/结尾)重用超类定义。这就像在冰淇淋蛋筒上放樱桃一样,其中冰淇淋蛋筒是该方法的超类定义,而樱桃是在新定义中添加的。

请注意,正如安迪·特纳Andy Turner)所指出的那样调用super的要求被视为反模式。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

类方法的目的是什么?

是否有来自具有子类方法仅调用覆盖的超类方法有什么好处?

在onPause,onStop和onDestroy方法中调用超类方法的正确顺序是什么?为什么?

Java:在跳过中间继承的超类时调用基本超类方法

调用超超类的方法

从超类调用方法

Swift-在超类的变量更改时调用子类方法

调用super超类方法

Clojure:调用超类方法

从超类调用子类方法

自动调用超类方法

更改标签时调用类方法

Laravel中的Request类中的authorize方法的目的是什么?

为什么可以调用超类没有的方法

为什么从子类的超类调用方法中获得“ this”?

为什么我的超类调用我的子类方法?

呈现UINavigationController时调用什么方法?

可以覆盖(更改参数)超类方法

您可以覆盖超类的方法并…

不从抽象超类覆盖的方法

方法不会从其超类 swift 覆盖

ProtoMessage方法的目的是什么?

在 EF 中定义 DBContext 时调用基类的构造函数背后的原因是什么?有没有其他方法可以做到?

我在子类中覆盖了一个属性的setter,但是当我在超类的init方法中调用它时,为什么子类的方法响应?

在执行静态导入时调用静态类型方法的语法是什么?

在 React 中单击时调用钩子函数的最佳方法是什么

调用超类方法而不是子类方法

在Java方法覆盖上不允许超类型的背后是什么原因?

测试覆盖仅调用另一个方法的方法的最佳方法是什么?