Interface X Classe 100% abstrata

5 respostas
K

Pessoal,

alguém saberia me dizer, porque não seria interessante, ou possível, substituir uma interface por uma classe 100% abstrata?

Abraços

5 Respostas

T

Não, porque você não pode ter herança múltipla de classes (como em C++). É melhor ter uma ou várias interfaces.

maxmustang

Herança Multipla

nao pode
xD

S

E tbm pelo seguinte.
EX: Qdo vc extender de uma classe vc irá implementar os métodos que todos os funcionários possuem na empresa, nome, endereco, cpf, rg, etc …
EX: Só irá implementar a interface certos funcionários que terão senha e irão autenticar , gerente, presidente, vendedor, etc, menos zelador, porteiro, quem não irá lidar diretamente com o sistema.

J

pq classe 100% abstrata você só pode usar fazendo um extends na classe filha, enquanto uma interface você usa fazendo implements… e em java, como disseram acima, naum permite herança multipla… em outras palavras, somente uma classe extends, mas várias podem estar declaradas no implements

ViniGodoy

Existe um problema semântico também. As duas coisas, apesar de fazerem a mesma coisa, tem significados diferentes.

Na herança, você está dizendo:
“Minha classe é um tipo da outra”.

Com interface, você está dizendo:
“Minha classe se compromete a ter determinado comportamento”.

A primeira relação é muito mais forte. Uma vez que você está se comprometendo a ser um tipo de outra classe, você também herdará atributos e implementações. A classe pode ter nascido 100% abstrata, mas dificilmente ela se manterá assim, a medida que o sistema evoluir. Quando a adição de novas coisas ocorrer, a classe filha obrigatoriamente terá que as assumir também.

Via de regra, prefira sempre interfaces à classes abstratas, justamente para não criar esse tipo de situação.

Criado 26 de outubro de 2009
Ultima resposta 27 de out. de 2009
Respostas 5
Participantes 6