Je suis nouveau à kotlin J'ai appris récemment à propos de l'héritage à kotlin, puis j'ai réalisé que nous ne pouvions pas marquer la visibilité d'une classe comme étant «protégée». Corrigez-moi si je me trompe ou existe-t-il un autre moyen de protéger une classe?Pourquoi ne pouvons-nous pas marquer la visibilité d'une classe comme "protégée" dans kotlin?
0
A
Répondre
5
Vous pouvez marquer protected
uniquement les parties de classes, afin qu'elles deviennent accessibles uniquement à partir des classes dérivées. Vous pouvez marquer protected
une propriété de membre, une fonction de membre ou d'une classe imbriquée:
open class X {
protected val v: SomeType = someValue
protected fun f() { }
protected class Y { ... }
}
Mais vous ne pouvez pas marquer protected
tout ce qui ne fait pas partie d'une classe (par exemple, une classe de niveau supérieur ou la fonction), parce que le modificateur Cela n'aurait aucun sens: une entité de premier niveau n'est pas sujette à l'héritage, donc il ne peut y avoir aucune classe dérivée qui y accèderait.
Je suppose que vous voulez dire pour un cours de haut niveau. Comment cela aurait-il même un sens? Qu'est-ce que cela signifie de marquer une classe comme protégée? –
Les classes imbriquées peuvent être protégées, exactement comme dans Java. –
Vous devriez montrer un échantillon qui a un problème avec une erreur exacte, parce que ce que vous demandez * est * autorisé, vous devez donc faire quelque chose de différent. –