Associe as características listadas abaixo aos conceitos de...
Associe as características listadas abaixo aos conceitos de Interface (I) ou Classe Abstrata (A).
( ) Não tem implementação, mas tem de ser implementada.
( ) Seus métodos podem ter suas próprias implementações padrão, podem ser estendidos e podem funcionar, independente da classe herdeira (subclasse).
( ) Só pode ter declaração de método (implicitamente público e abstrato) e propriedades (implicitamente estático e público).
( ) Seus métodos podem ser implementados se declarados abstratos.
( ) Pode herdar mais de uma interface.
( ) Pode implementar mais de uma interface, mas pode herdar apenas uma classe.
( ) Aumenta a segurança, escondendo a implementação.
A sequência correta, de cima para baixo, é:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a C - I, A, I, A, I, A, I.
No contexto da Engenharia de Software, especificamente na programação orientada a objetos, é fundamental entender a diferença entre Interfaces e Classes Abstratas. Ambas são estruturas que servem para definir contratos em níveis de classes e métodos, mas se diferenciam em aspectos cruciais de implementação e herança.
Interfaces (I), como indicado nas posições 1, 3, 5 e 7 da alternativa correta, são tipos que permitem a declaração de métodos sem qualquer implementação. Elas definem um contrato que a classe que a implementa deve seguir, garantindo assim que todas as classes que implementem uma determinada interface possuirão os métodos declarados nela. Interfaces são implicitamente públicas e abstratas; seus métodos não têm corpo e propriedades são estáticas e públicas.
Classes Abstratas (A), marcadas nas posições 2, 4 e 6, podem ter métodos com implementações padrão, mas também podem conter métodos abstratos que devem ser implementados pelas subclasses. Além disso, uma classe pode herdar de apenas uma classe abstrata devido à restrição de herança única em muitas linguagens de programação, porém uma classe pode implementar múltiplas interfaces.
A alternativa correta, C, associa esses conceitos da seguinte forma:
- Interface: Não tem implementação, mas tem de ser implementada.
- Classe Abstrata: Seus métodos podem ter suas próprias implementações padrão, podem ser estendidos e podem funcionar independente da classe herdeira (subclasse).
- Interface: Só pode ter declaração de método (implicitamente público e abstrato) e propriedades (implicitamente estático e público).
- Classe Abstrata: Seus métodos podem ser implementados se declarados abstratos.
- Interface: Pode herdar mais de uma interface.
- Classe Abstrata: Pode implementar mais de uma interface, mas pode herdar apenas uma classe (restrição de herança única).
- Interface: Aumenta a segurança, escondendo a implementação.
Compreender esses conceitos é crucial para qualquer engenheiro de software que esteja preparando-se para concursos públicos na área de TI, uma vez que são fundamentos da orientação a objetos e são frequentemente abordados em provas e entrevistas técnicas.
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
Gabarito:C.
Classe abstrata
É um tipo de classe que somente pode ser herdada e não instanciada.
É uma classe conceitual que pode definir funcionalidades para que as suas subclasses possam implementá-las.
O conjunto de métodos na classe abstrata é obrigatoriedade, assim como a implementação nas suas subclasses.
Em uma classe abstrata, os métodos declarados podem ser abstratos ou não, e suas implementações devem ser obrigatórias na subclasse.
Interface
Define as operações que um objeto será obrigado a implementar.
Uma interface nunca contém implementação, ou seja, numa interface não se pode definir campos, pois os mesmos são uma implementação de um atributo objeto.
A interface também não permite construtores, pois num construtor temos as instruções usadas para inicializar campos.
Para podermos usar uma interface, devemos criar uma classe ou estrutura e herdar da interface. Com isso, é obrigatório implementar todos os métodos da interface.
Fonte:https://pt.stackoverflow.com/questions/3603/classe-abstrata-x-interface/108977
Interface em Java pode estender várias outras interfaces:
public interface IGato extends IFelino, IMamifero, IPeludo
c-
Interface:
(I) Não tem implementação, mas tem de ser implementada.
(I) Só pode ter declaração de método (implicitamente público e abstrato) e propriedades (implicitamente estático e público).
(I) Pode herdar mais de uma interface.
(I) Aumenta a segurança, escondendo a implementação.
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Classe Abstrata
(A) Seus métodos podem ter suas próprias implementações padrão, podem ser estendidos e podem funcionar, independente da classe herdeira (subclasse).
(A) Seus métodos podem ser implementados se declarados abstratos.
(A) Pode implementar mais de uma interface, mas pode herdar apenas uma classe.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo