1
resposta

Dúvida quanto a expressão open val

Ela é encontrado na documentação falando sobre visibilidade.

protected open val b = 2 internal open val c = 3

Queria saber qual o seu significado e propósito. Será que tem algo a ver com a expressão usada depois:

  • override val b = 5 // 'b' is protected
  • override val c = 7 // 'c' is internal

Quanto a internal e protected, assim como private e public não precisa explicar. Foram bem explicados. =)

1 resposta

Olá Gilton, como vai? Isso mesmo, sua percepção está certa.

O open indica que a variável pode ser sobreposta em classes que herdam da classe em que foi declarado. Quando uma variável é declarada como open, ela pode ser sobrescrita em uma classe filha utilizando o modificado override.

Nesse caso de usar combinado o protected e o open, vai permitir que a classe filha acesse a variável da classe pai e que também possa sobrescrever essa variável na sua implementação. É bastante útil quando algum item precisa ser acessado e modificado nas classes filhas, porém não deve ser acessado fora da hierarquia de classes.

Espero ter ajudado, bons estudos por aí! =)