moge() } class BaseAImpl : BaseA { override fun hoge() = println(“BaseA”) } class BaseBImpl : BaseB { override fun moge() = println(“BaseB”) } class AAndBImpl(b: BaseB) : BaseA by BaseAImpl(), BaseB by b { // BaseAの実装BaseAImpl, BaseBはb // mix-in } class NantokaKantoka { fun methodA() { AAndBImpl(BaseBImpl()).hoge() // => BaseA AAndBImpl(BaseBImpl()).moge() // => BaseB } }