Um dos artifícios para aumentar a produtividade em programaç...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: C
A questão aborda um importante conceito da programação orientada a objetos em Java: a utilização de interfaces. As interfaces são contratos que definem métodos sem implementação, deixando a cargo das classes que as implementam fornecer os detalhes de como esses métodos funcionam. Ao implementar uma interface, uma classe compromete-se a fornecer o código para todos os métodos definidos na interface. Isso ajuda na reutilização de código e na organização do projeto, promovendo um design flexível e modular.
A alternativa C é a correta porque reflete um conceito central da herança de tipos e polimorfismo em Java. Quando uma classe implementa uma interface, ela pode ser tratada como um objeto do tipo da interface porque está aderindo ao contrato definido por essa interface. Isso permite que o mesmo objeto seja referenciado por meio de diferentes tipos de referência, um dos quais pode ser a interface que ele implementa. Isso é fundamental para técnicas de programação como o polimorfismo e para a redução do acoplamento entre componentes de software, pois você pode depender de interfaces em vez de implementações concretas.
As demais alternativas são incorretas por vários motivos. Por exemplo, métodos em uma interface são implicitamente públicos e abstratos (alternativa E está errada), e interfaces não podem conter campos de instância, apenas constantes públicas estáticas finais (o que torna a alternativa B incorreta). A alternativa A está incorreta porque os métodos de uma interface não têm uma implementação; eles são definidos como abstratos e devem ser implementados pelas classes que implementam a interface. Finalmente, a alternativa D está incorreta porque uma das principais vantagens do uso de interfaces é justamente reduzir o acoplamento entre 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
- Não necessariamente têm parâmetros e os métodos não possuem implementação
- Somente aceitam os modificadores de acesso final para os atributos e public para os métodos (já é mplicito)
Letra C a correta, digamos que temos uma interface IDimensao e uma classe Caixa que implementa a interface IDimensão, o seguinte trecho de código abaixo é possível:
Caixa minhaCaixa = new Caixa();
IDimensao minhaDimensao = (IDimensao) minhaCaixa; //É possível converter um tipo classe para um tipo interface, desde que a classe implemente a interface.
INTERFACES
Descreve um conjunto de métodos que podem ser chamados em um objeto, mas não fornece implementações concretas para todos os métodos
Métodos de uma interfaces são públicos e abstratos sempre.
Uma interface não possui nenhum tipo de implementação, mas apenas a definição (assinatura) dos métodos que devem ser implementados por uma classe.
Interfaces também não podem ser instanciadas
As alternativas foram adaptadas e corrigidas.
a) Todos os métodos em um tipo interface têm um nome e opcionalmente parâmetros e um tipo de retorno.
b) Um tipo interface pode ter campos que são static e final. *
c) CORRETA
d) As interfaces reduzem o acoplamento entre classes, pois permitem a reutilização de métodos (pelas classes) com diferentes implementações.
e) Os métodos em tipo interface são públicos.
* Interfaces não podem ser instanciadas, portanto, campos de instância não existem.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo