29 lines
582 B
Kotlin
Vendored
29 lines
582 B
Kotlin
Vendored
open class A {
|
|
internal open val field = "AF"
|
|
|
|
internal open fun test(): String = "AM"
|
|
}
|
|
|
|
fun invokeOnA(a: A) = a.test() + a.field
|
|
|
|
class Z : A() {
|
|
override val field: String = "ZF"
|
|
|
|
override fun test(): String = "ZM"
|
|
}
|
|
|
|
fun box() : String {
|
|
var invokeOnA = invokeOnA(A())
|
|
if (invokeOnA != "AMAF") return "fail 1: $invokeOnA"
|
|
|
|
invokeOnA = invokeOnA(Z())
|
|
if (invokeOnA != "ZMZF") return "fail 2: $invokeOnA"
|
|
|
|
val z = Z().test()
|
|
if (z != "ZM") return "fail 3: $z"
|
|
|
|
val f = Z().field
|
|
if (f != "ZF") return "fail 4: $f"
|
|
|
|
return "OK"
|
|
} |