带类名的超级方法调用

时间:2017-06-26 18:17:57

标签: android super

其实我正在浏览一些android源代码并找到了这些

public static class ToggleService extends IntentService {
super(ToggleService.class.getname());

我无法理解超级及其参数的使用。

3 个答案:

答案 0 :(得分:1)

如果您查看文档

https://developer.android.com/reference/android/app/IntentService.html#IntentService(java.lang.String)

你会发现IntentService(ToggleService的基类)有一个构造函数,它接受一个字符串用于调试目的。 Super调用基类的构造函数。 因此,ToggleService只为调试日志提供自己的名称,以便为其添加前缀。

答案 1 :(得分:1)

因为ToggleService通过从ToggleService调用super来扩展IntentService,所以它实际上是在调用IntentService的构造函数,这是

     /**
     * Creates an IntentService.  Invoked by your subclass's constructor.
     *
     * @param name Used to name the worker thread, important only for debugging.
     */
    public IntentService(String name) {
        super();
        mName = name;
    }

ToggleService.class.getname()将返回ToggleService类的名称,在这种情况下,该类是一个串联字符串,用于构造ToggleService和" ToggleService"的包名。

了解更多信息:https://docs.oracle.com/javase/tutorial/java/IandI/super.html

答案 2 :(得分:0)

superJava中的关键字。它指的是直接的父母财产。

super()            //refers parent's constructor
super.getMusic();  //refers to the parent's method

Read More on super