Kotlin延伸到第二个构造函数

时间:2018-06-19 05:50:30

标签: android kotlin

我目前的课程如下:

class MyGcmListenerService : GcmListenerService() {}

GCMListenerService如下

public class GcmListenerService extends zzb {}

现在我正在寻求扩展到另一个构造函数。 当我尝试这样做时,

class MyGcmListenerService : GcmListenerService(), PushDataReceiver {}

我收到错误

  

超类型列表中只能出现一个类。这种类型有一个   构造函数,因此必须在这里初始化

PushDataReceiver如下所示

public abstract class PushDataReceiver extends BroadcastReceiver

我一直试图谷歌

  

Kotlin添加辅助构造函数

不知怎的,我无法为我的问题获得任何帮助。

1 个答案:

答案 0 :(得分:1)

就像Java一样,Kotlin不支持多重继承。您一次只能扩展一个类 - 尽管您可以实现多个接口。如果您同时需要GcmListenerService子类和BroadcastReceiver,则必须为它们创建单独的类。

解释您收到的错误消息:

  

超类型列表中只能出现一个类。这种类型有一个构造函数,因此必须在这里初始化

这个错误指出当你扩展一个类时(与实现一个接口时不同),你需要通过添加括号来调用它的构造函数(如果它有构造函数参数,则在这些括号中传递它们),就像你使用的那样另一堂课:

class MyGcmListenerService : GcmListenerService(), PushDataReceiver() {}

但是,再次,因为你只能有一个直接的超类,这是行不通的。