O desenvolvedor José implementou a classe CGEPrincipal em Ja...
Para restringir a herança na declaração da classe CGEPrincipal, José utilizou a funcionalidade do Java 17:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - sealed class
A questão aborda um recurso introduzido no Java 17 conhecido como classes seladas (sealed classes). Este conceito é um mecanismo de controle de herança que permite ao desenvolvedor definir quais outras classes podem herdar de uma classe selada. Isso é útil quando se quer ter um controle mais rigoroso sobre a hierarquia de classes, garantindo que apenas um conjunto específico de classes possa estender a classe selada.
Para resolver essa questão, é necessário entender os seguintes conceitos:
- O que são classes seladas no Java e como elas são declaradas.
- Os benefícios de restringir a herança e como isso pode tornar a implementação mais próxima do modelo de domínio projetado.
As classes seladas são declaradas utilizando a palavra-chave sealed, seguida pela palavra-chave permits, que especifica quais outras classes podem estender a classe selada. Por exemplo:
public sealed class CGEPrincipal permits CGEUm, CGEDois { ... }
A resposta correta é a alternativa C porque sealed class é exatamente a funcionalidade do Java que permite restringir a herança de uma maneira que se ajuste ao modelo de domínio, conforme mencionado no enunciado. José utilizou essa funcionalidade para indicar que apenas as classes CGEUm e CGEDois podem herdar de CGEPrincipal, garantindo assim o controle sobre a extensão da classe.
As outras alternativas não representam corretamente a funcionalidade utilizada para restringir a herança de classes no Java 17:
- Reflection (Alternativa A) é um recurso que permite inspecionar e modificar o comportamento de classes, métodos e interfaces em tempo de execução.
- Static class (Alternativa B) se refere a uma classe aninhada estática que não tem acesso à instância da classe exterior.
- Foreign function (Alternativa D) não é um conceito relacionado diretamente com a herança de classes no Java.
- Pattern matching (Alternativa E) é um recurso que permite verificar se um objeto corresponde a um determinado padrão, mas não está relacionado à restrição de herança de classes.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Para restringir a herança na declaração da classe CGEPrincipal em Java 17, o desenvolvedor José utilizou a funcionalidade chamada "sealed class". Portanto, a opção correta é:
C) sealed class
Reflection, em poucas palavras, serve para determinar métodos e atributos que serão utilizados de determinada classe (que você nem conhece) em tempo de execução.
Static Class é uma classe que não pode ser instanciada. Ou seja, não podemos criar objetos de uma classe estática. Só podemos acessar seus membros usando o próprio nome da classe.
Sealed Class, As classes seladas (sealed classes) permitem um controle mais preciso sobre quais classes podem estender ou implementar uma classe específica. Isso ajuda a reforçar o encapsulamento e a estrutura do código.
Foreign Function e memory API, para interagir de forma mais eficiente com código nativo e manipulação de memória. Isso é útil em cenários de programação de baixo nível, mas requer cuidado para garantir a segurança.
Pattern Matching, propõe usá-lo com a instrução do Switch, como um recurso de pré-visualização
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo