Kotlin 作为子类的访问方法

Kotlin 作为子类的访问方法,kotlin,Kotlin,比如说,我创建了一个从另一个类扩展而来的类,我想覆盖其中一个父函数,但我希望这个函数从外部是私有的(就像Java中受保护的)。 我试着按它说的使用protected,但不起作用。 科特林有可能吗 open class YesNoDialog(context: Context, styleRes: Int) : Dialog(context, styleRes) { protected fun setTexts() { } } 在本例中,我想从MultiSelectDialog类访问set

比如说,我创建了一个从另一个类扩展而来的类,我想覆盖其中一个父函数,但我希望这个函数从外部是私有的(就像Java中受保护的)。
我试着按它说的使用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