Um dos artifícios para aumentar a produtividade em programaç...

Próximas questões
Com base no mesmo assunto
Ano: 2013 Banca: FCC Órgão: DPE-SP Prova: FCC - 2013 - DPE-SP - Programador de computador |
Q304607 Programação
Um dos artifícios para aumentar a produtividade em programação orientada a objetos utilizando a plataforma Java é a reutilização de componentes de software em múltiplos projetos. Um dos artifícios que podem ser utilizados para essa finalidade são as interfaces. Sobre elas, é correto afirmar:
Alternativas

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

INTERFACES
- 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