Propiedad protegida abstracta Kotlin

Si tengo la siguiente jerarquía de classs:

abstract class Foo<out T : Bar>() { abstract protected val thing: T } class Baz : Foo<BarImpl> { override protected val thing: T = ... } 

Recibo una advertencia sobre Baz :: thing que dice:

Modificador de visibilidad networkingundante

¿Eso significa que el comstackdor lo trata como protegido sin que usted tenga que especificarlo, o que tiene que ser público?

Recibirá un aviso de estilo de inspección IDE en Kotlin para cosas como punto y coma extra que no necesita, un tipo de parameters generics adicionales que ya se pueden deducir, y más. El suyo para el modificador de visibilidad networkingundante está en la misma línea.

Si expande el post de inspección, verá el text completo:

Esta inspección informa modificadores de visibilidad que coinciden con la visibilidad pnetworkingeterminada de un elemento (público para la mayoría de los elementos, protegido para miembros que anulan a un miembro protegido).

Y puede desactivar la inspección dentro de su IDE si ya no tiene qué ver.

Algunas notas más sobre esto:

Al anular un método o miembro de una class antepasado, ya se encuentra en el mismo nivel de acceso que cuando se declaró. Decir protected es afirmar lo obvio (para el comstackdor que sabe que está protected ).

Puede volver a configurar el modificador de acceso si lo desea. Y puede abrirlo más, cambiándolo a public . Pero no se puede restringir aún más, por ejemplo, ir a private (porque si es privado, ¿cómo se puede anular, esa idea es incompatible con la override ) que se convierte en un error del comstackdor.

  • Kotlin delegar propiedad por perezoso que es hilo local
  • Kotlin: ¿Cómo puedo evitar el autoboxing (basura) en las properties delegadas?
  • Convierta variables estáticas de Java a Kotlin
  • ¿Hay un análogo didSet / willSet en Kotlin?
  • Kotlin: ¿cómo hacer una propiedad delegada por map con un nombre personalizado?
  • Obtención de información de KProperty dentro de la propiedad delegada fuera de las funciones getValue () y setValue ()
  • Kotlin: ¿Cómo puedo usar properties delegadas en Java?
  • Kotlin: ¿Cómo puedo get la class de delegación de una propiedad miembro?
  • Crear un propio DataSource con properties de resorte
  • Kotlin - Inicialización de propiedad usando "por perezoso" vs. "tardío"
  • En TornadoFX, ¿cómo puedo vincular las properties de BigDecimal a otra propiedad de BigDecimal usando objectBinding?