34 lines
685 B
Kotlin
34 lines
685 B
Kotlin
open class Base() {
|
|
val plain = 239
|
|
public val read : Int
|
|
get() = 239
|
|
|
|
public var readwrite : Int = 0
|
|
get() = $readwrite + 1
|
|
set(n : Int) {
|
|
$readwrite = n
|
|
}
|
|
}
|
|
|
|
interface Abstract {}
|
|
|
|
class Derived1() : Base(), Abstract {}
|
|
class Derived2() : Abstract, Base() {}
|
|
|
|
fun code(s : Base) : Int {
|
|
if (s.plain != 239) return 1
|
|
if (s.read != 239) return 2
|
|
s.readwrite = 238
|
|
if (s.readwrite != 239) return 3
|
|
return 0
|
|
}
|
|
|
|
fun test(s : Base) : Boolean = code(s) == 0
|
|
|
|
fun box() : String {
|
|
if (!test(Base())) return "Fail #1"
|
|
if (!test(Derived1())) return "Fail #2"
|
|
if (!test(Derived2())) return "Fail #3"
|
|
return "OK"
|
|
}
|