11

在我在网上看到的许多示例中,AsyncTask被扩展,构造函数被覆盖,并且 super() 没有被调用。例如,在hackbod的这个答案中:

static class Worker extends AsyncTask<URL, Integer, Long> {
    MyActivity mActivity;

    Worker(MyActivity activity) {
        mActivity = activity;
    }

    [...]

}

新的构造函数不会回调父构造函数。

CommonsWare在这个示例项目中有类似的代码。

那么这是正确的吗?还是super()真的应该叫?

4

1 回答 1

18

如果未显式调用 super(),则默认调用超级构造函数。所以真的没有任何区别。我会使用较短的版本(省略 super()),这似乎是 Java 中的常见做法。

ps 另请参阅此线程:Java 中的默认构造函数和继承

于 2012-06-17T21:42:16.223 回答