Java permite acceder a la variable base de Kotlin a través de su hijo, pero no a Kotlin, ¿por qué?

Tengo una class como la siguiente

open class KotlinBase { companion object { const val TAG = "testing" } } 

Y un hijo de ella como

 class KotlinChild : KotlinBase() 

Cuando bash acceder a TAG desde una class de Java, podría

 public class JavaOther { String test1 = KotlinBase.TAG; // This is okay String test2 = KotlinChild.TAG; // This is okay } 

Sin embargo, al acceder desde la class Kotlin, no puedo acceder a través del Niño.

 class KotlinOther { val test1 = KotlinChild.TAG // Compile/Syntax error val test2 = KotlinBase.TAG // This is okay } 

¿Por qué mi class de Kotlin no puede acceder a la variable henetworkingada TAG través de KotlinChild ?

Es una decisión de layout que le permite evitar ambigüedades. – las classs secundarias pueden tener sus propios companion object con campos / methods con los mismos nombres que los del padre.

Al restringir el acceso a los compañeros solo a través de la class real, ya no existen problemas con el sombreado de campo / método ambiguo.

Además, los objects complementarios no son miembros static conocidos de otros idiomas. Aunque, la mayoría de los casos de uso se superponen.

Además, restring eso

 KotlinBase.TAG 

es un atajo para:

 KotlinBase.Companion.TAG 
  • Daga 2.11: ¿cómo hacer que Actividad y Fragmento compartan valores comunes?
  • Android Studio (Kotlin) cómo convertir StringArray en MutableList
  • reproducir cualquier video embedded en la vista web en Android con intención
  • Kotlin gradle.build ZipException debido a duplicates
  • Constructor de vista personalizada en Android 4.4 se bloquea en Kotlin, ¿cómo solucionarlo?
  • Crear paginador de visualización mediante progtwigción en la barra de tabs, pero el contenido de paginador de vista se desplaza por las tabs
  • Cómo poner un elemento en un map y devolver el map
  • Kotlin Generics tipo personalizado con comodín
  • ¿Cómo iniciar dos constructores en kotlin con class interna?
  • Android: la ejecución de Kotlin falló al intentar usar Databinding
  • ¿Cómo puedo ignorar todas las advertencias de Kotlin en IntelliJ IDEA?