为啥我们不能在 Kotlin 的 Singleton 类(对象)中使用受保护的访问修饰符

Posted

技术标签:

【中文标题】为啥我们不能在 Kotlin 的 Singleton 类(对象)中使用受保护的访问修饰符【英文标题】:Why can't we use protected access modifier in Singleton class (object) for Kotlin为什么我们不能在 Kotlin 的 Singleton 类(对象)中使用受保护的访问修饰符 【发布时间】:2020-05-03 05:35:56 【问题描述】:

为什么我们不能在 Kotlin 的 Singleton 类中使用 protected 访问修饰符。 我们可以在 Java 类中使用 protected 访问修饰符,但是对于 kotlin,这行不通。

【问题讨论】:

【参考方案1】:

在 Kotlin 中,您不能从单例 object 继承,这就是 protected 修饰符无用的原因,因为 protected 修饰符只为此类和子类打开函数/属性。

【讨论】:

【参考方案2】:

您不能从 Kotlin 中的对象继承,因此受保护的修饰符没有任何意义。在Java中,没有语言层面的单例,它只是一个具有特定逻辑的类

【讨论】:

以上是关于为啥我们不能在 Kotlin 的 Singleton 类(对象)中使用受保护的访问修饰符的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin学习手记——单例内部类数据类枚举类密封类内联类

为啥 Kotlin 不能推断以下 lambda 参数(在 Java -> Kotlin 转换之后)?

为啥我不能在 Kotlin Flow 中使用像 rxJava.Single.create 这样的发射函数?

Kotlin 在片段中找不到按钮 ID,为啥?

为啥 kotlin multiplatform 不执行和导出 iOS 框架?

为啥 Kotlin 允许编写不带参数的 main 函数?