package override
interface MyTrait {
fun foo()
}
abstract class MyAbstractClass {
abstract fun bar()
}
open class MyClass : MyTrait, MyAbstractClass() {
override fun foo() {}
override fun bar() {}
}
class MyChildClass : MyClass() {}
class MyIllegalClass : MyTrait, MyAbstractClass() {}
class MyIllegalClass2 : MyTrait, MyAbstractClass() {
override fun foo() {}
}
class MyIllegalClass3 : MyTrait, MyAbstractClass() {
override fun bar() {}
}
class MyIllegalClass4 : MyTrait, MyAbstractClass() {
fun foo() {}
override fun other() {}
}
class MyChildClass1 : MyClass() {
fun foo() {}
override fun bar() {}
}