Множественное наследование в Котлине

Рассмотрим следующий пример

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 signature. После этого код будет выглядеть следующим образом:

 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 } }