Kotlin中的多重继承

考虑下面的例子

public class SomeActivity() : Activity(), OnClickListener { override fun onCreate(Bundle?: savedInstanceState) { super<Activity>.onCreate(savedInstanceState) ... someButton.setOnClickListener(this) // How do I refer to the `OnClickListener` implementation? } } 

如何引用上面提到的代码片段中的OnClickListener实现?

不要忘记实现onClick(View)函数并更改onCreate签名。 之后,代码将如下所示:

 public class SomeActivity() : Activity(), OnClickListener { override fun onCreate(savedInstanceState: Bundle?) { super<Activity>.onCreate(savedInstanceState) val someButton = Button(this) someButton.setOnClickListener(this) } override fun onClick(v: View) { // TODO implement } } 

不想创建一个Android项目,我创建了一个类的模拟,并没有错误使用另一个答案中提到的代码:

 // mocked up classes interface Bundle {} open class Activity { open fun onCreate(savedInstanceState: Bundle?) {} } interface View {} interface OnClickListener { fun onClick(v: View) } open class Button(a: Activity) { fun setOnClickListener(o: OnClickListener) {} } // the usage, showing no error: public class SomeActivity() : Activity(), OnClickListener { override fun onCreate(savedInstanceState: Bundle?) { super<Activity>.onCreate(savedInstanceState) val someButton = Button(this) someButton.setOnClickListener(this) // NO ERROR } override fun onClick(v: View) { // TODO implement } }