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 equals(other: Any?): Boolean {
return super.equals(other)
}
override fun hashCode(): Int {
return super.hashCode()
}
override fun internalFun() {
super.internalFun()
}
override val internalProperty: Int = 0
override fun protectedFun() {
super.protectedFun()
}
override val protectedProperty: Int = 0
override fun publicFun() {
super.publicFun()
}
override val publicProperty: Int = 0
override fun toString(): String {
return super.toString()
}
}