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: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.
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.