interface CanMove { fun move() } interface CanCommunicate { fun communicate() } abstract class Humanoid : CanMove, CanCommunicate class Person(walker: CanMove, talker: CanCommunicate) : Humanoid(), CanMove by walker, CanCommunicate by talker