Uma diferença entre classe e interface é que a classe

Próximas questões
Com base no mesmo assunto
Q252867 Programação
Uma diferença entre classe e interface é que a classe

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: Letra E

A alternativa correta é a letra E, que afirma que uma classe declara e implementa seus métodos, enquanto a interface apenas declara.

Para entender essa diferença, é fundamental conhecer a base do paradigma de programação orientada a objetos (POO), que utiliza classes e interfaces como estruturas fundamentais. Uma classe em POO é uma estrutura que combina estado (campos de dados) e comportamento (métodos), e é através dela que criamos objetos. Uma classe pode conter métodos implementados, onde o comportamento é definido. Além disso, também pode conter campos de dados, que são as variáveis que armazenam o estado do objeto.

Por outro lado, uma interface é um tipo de contrato em POO que as classes podem implementar. Uma interface somente declara métodos, mas não provê a implementação desses métodos. É responsabilidade das classes que implementam a interface fornecer o código para os métodos declarados pela interface. Isso permite um alto nível de abstração e flexibilidade no design do software, pois permite que diferentes classes possam ser tratadas de modo uniforme através das interfaces que implementam.

Com isso em mente, vamos analisar por que as outras alternativas são incorretas:

  • A alternativa A é incorreta porque interfaces podem ter campos, mas esses campos são implicitamente public, static e final, ou seja, são constantes.
  • A alternativa B confunde os termos: uma classe pode implementar uma interface, mas uma interface não é 'implementada em' uma classe. Em vez disso, uma interface pode ser estendida por outra interface.
  • A alternativa C é incorreta porque tanto classes quanto interfaces podem ser usadas tanto em applets quanto em aplicativos.
  • A alternativa D é incorreta porque tanto classes quanto interfaces podem ser organizadas em pacotes (packages).

Portanto, a alternativa E é a única que apresenta uma distinção correta e fundamental entre classes e interfaces na programação orientada a objetos.

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

Interface
 
Uma interface Java é uma classe abstrata para a qual todos os métodos são implicitamente abstract e public, e todos os atributos são implicitamente static e final. Em outros termos, uma interface Java aproxima-se da especificação de uma "classe abstrata pura".
A sintaxe para a declaração de uma interface é similar àquela para a definição de classes, porém seu corpo define apenas assinaturas de métodos e constantes.
Uma interface estabelece uma espécie de contrato que é obedecido por uma classe. Quando uma classe implementa uma interface, garante-se que todas as funcionalidades especificadas pela interface serão oferecidas pela classe.
 
Uma interface em Java é uma espécie de classe, com as seguintes propriedades: 
a) Não pode ser instanciável (não podemos criar objetos com new); 
b) Só pode possuir assinaturas de métodos de instância, públicos e abstratos (sem corpo).  
Não pode possuir métodos concretos (com corpo), nem métodos estáticos. 
Os prefixos abstract e public  podem ser usados, mas são em geral omitidos; 
c) Não pode conter variáveis de instância ou de classe (static); 
d) Pode conter declarações de constantes (com prefixo final e inicializadas para um valor) – 
nesse caso essa variável funcionará como uma constante de classe.  
O prefixo static possa ser usado, mas é em geral omitido; 
e) Pode ser criada como subinterface de outra interface já existente, usando extends,  como 
as classes. 
 
public interface InterfaceExemplo{ 
 public final String PALAVRA = "UFRJ"; 
 public  void metodo1(int x); 
 public  String metodo2 (String s); 
}  
 
public interface InterfaceExemplo2 extends InterfaceExemplo { 
 public void metodo3(); 
}
Referência da explicação acima:

http://www.dcc.ufrj.br/~comp2/TextosJava/Interfaces%20em%20Java.pdf

Resposta: Letra E

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo