internal open class A { internal open fun foo() {} } internal open class B : A() { override fun foo() {} } internal class C : B() { override fun foo() {} }