【发布时间】:2025-12-27 15:30:13
【问题描述】:
就在我以为我理解它的时候,我得到了以下问题。
我在另一个模块中有一个基类(这里称为基类)
看起来是这样的:
open class BaseTest {
companion object {
lateinit var baseTest: BaseTest
}
protected open var someProperty: String? = "base"
}
我想设置该属性并使其受到保护,以便我在另一个模块中的扩展类可以访问它。
class Extended: BaseTest() {
fun extendedCall() {
BaseTest().someProperty = "extended"
baseTest.someProperty = "extended"
}
}
但是,无论是静态属性还是直接属性都无法访问,并指出以下错误:
Cannot access 'someProperty': it is protected in 'BaseTest'
但是由于 BaseTest() 的扩展固有特性,它不应该是可访问的吗?我的意思是受保护的定义是“声明仅在其类及其子类中可见”所以我错过了什么?它甚至不能在同一个模块中工作,所以这不是原因。
我错过了什么?
【问题讨论】:
标签: kotlin module protected access-modifiers