Ok, I just use interfaces so... ``` /*trait*/ inte...
# getting-started
t
Ok, I just use interfaces so...
Copy code
/*trait*/ interface HasPower {
    abstract val power: String
    
    fun getPower(): String = "Super $power"
}

/*trait*/ interface HasUnderwear {
    abstract val underwear: String
    
    fun getUnderwear(): String = "It's a lie, I don't have!"
}

class Person(
    val name: String,
    override val power: String,
    override val underwear: String
): HasPower, HasUnderwear

fun doSomething(target: HasPower) {
    println(target.getPower())
}

fun main(args: Array<String>) {
  val p = Person("Jean", "Laser", "Coat")
    
  doSomething(p)
}
But this code only work with kotlinjs not with JVM on
try.kotlin
. I get
java.lang.ClassFormatError: Duplicate method name&signature in class file HasPower