abstract class Controller(
var state: State
) {
var isChecked: Int? = null
fun step() = ...
abstract fun checkMove()
}
interface Controller {
fun step() = { }
fun checkMove()
val color: Int
get() = 3
val id: Int
}
class FoxController(
val state: State
) : Controller {
override fun checkMove()
override val id = 1
}
class A
class B(val a: A)
class A
class B : A
interface A
class B : A