Tristan Caron
01/09/2017, 8:57 PM/*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