open class A() {
protected open fun protectedFun() { }
internal open fun internalFun() {}
public open fun publicFun() {}
}
trait B {
protected open val protectedProperty : Int
internal open val internalProperty : Int
public open val publicProperty : Int
}
class C : A(), B {
override fun internalFun() {
super.internalFun()
}
override val internalProperty: Int = 0
protected override fun protectedFun() {
super.protectedFun()
}
protected override val protectedProperty: Int = 0
public override fun publicFun() {
super.publicFun()
}
public override val publicProperty: Int = 0
}