Kotlin 作为子类的访问方法
比如说,我创建了一个从另一个类扩展而来的类,我想覆盖其中一个父函数,但我希望这个函数从外部是私有的(就像Java中受保护的)。Kotlin 作为子类的访问方法,kotlin,Kotlin,比如说,我创建了一个从另一个类扩展而来的类,我想覆盖其中一个父函数,但我希望这个函数从外部是私有的(就像Java中受保护的)。 我试着按它说的使用protected,但不起作用。 科特林有可能吗 open class YesNoDialog(context: Context, styleRes: Int) : Dialog(context, styleRes) { protected fun setTexts() { } } 在本例中,我想从MultiSelectDialog类访问set
我试着按它说的使用protected,但不起作用。 科特林有可能吗
open class YesNoDialog(context: Context, styleRes: Int) : Dialog(context, styleRes) {
protected fun setTexts() {
}
}
在本例中,我想从MultiSelectDialog类访问setTexts,可以使用
受保护的,但您还需要添加打开以允许覆盖它:
open class YesNoDialog(context: Context, styleRes: Int) : Dialog(context, styleRes) {
protected open fun setTexts() {
}
}
class MultiSelectDialog(context: Context, styleRes: Int) : YesNoDialog(context, styleRes) {
override fun setTexts() {
}
}
可以使用受保护的
,但您还需要添加打开
,以允许覆盖它:
open class YesNoDialog(context: Context, styleRes: Int) : Dialog(context, styleRes) {
protected open fun setTexts() {
}
}
class MultiSelectDialog(context: Context, styleRes: Int) : YesNoDialog(context, styleRes) {
override fun setTexts() {
}
}
添加您的代码。这将使这个问题更有意义,因为我现在无法理解确切的要求。。另一方面,您不能在方法重写中缩小可见性。您可以尝试使用受保护的
可见性定义函数,并使用相同的可见性实现它。Kotlin中的internal
关键字可能也会有帮助,但它不太可能在JVM字节码级别解决整个问题我试图使用protected,正如我在问题中所显示的那样-不工作添加代码。这将使这个问题更有意义,因为我现在无法理解确切的要求。。另一方面,您不能在方法重写中缩小可见性。您可以尝试使用受保护的
可见性定义函数,并使用相同的可见性实现它。Kotlin中的internal
关键字可能也会有帮助,但它不太可能在JVM字节码级别解决整个问题。我试图使用protected,正如我在问题中所显示的那样-不工作Anks mate,它可以工作。。我不知道你可以使用open和protected Together谢谢,伙计,它很管用。。我不知道你可以一起使用open和protected