Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kartter

Interface X classe abstrata

Recommended Posts

Pessoal,

 

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

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha , não tenho certeza se é só isso http://forum.imasters.com.br/public/style_emoticons/default/blush.gif , mais acredito que a razão seja por dois motivos:

 

1º Essa atitude iria ferir os conceitos de Orientada a Objetos.

 

2º Facilita você poder ver se a classe apenas serve como uma interface, ou se ela tem métodos implementados (veja que uma classe abstract também pode implementar seus métodos ).

 

Exemplo : Imagine que você esteja herdando de uma classe X , e essa classe herda de uma classe abstract Z. Para você herdá-la , seria interessante você estar estudando a classe X e a classe Z.

Agora, se a classe Z fosse uma interface , você não teria que ter o trabalho de estuda-la, pois todos os seus métodos já estão implementados em X.

 

 

Espero que isso ajude.

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro: você tem que pensar 100 vezes antes de utilizar herança. Sempre dê preferência pra composições. Você só deve utilizar herança pra definir uma classe (grupo, família) de objetos que tenham mesmo comportamento. Uma classe samambaia não pode herdar de cachorro mesmo que a classe cachorro tenha métodos e atributos que possam ser reutilizados.

 

Segundo: com interface você não "queima" herança. Você pode implementar mais de uma classe mas só pode herdar de uma.

 

Terceiro: com interface você não tem quebra de encapsulamento. Às vezes, pra entender com uma classe funciona você precisa abrí-la e estudá-la. Nesse caso o encapsulamento vai pro saco.

 

Quarto: programar orientado à interface é muito mais prático. Com polimorfismo você pode evitar problemas no desenvolvimento e manutenção do software. Um exemplo clássico são as coleções do java. Você tem uma interface List e pode transformá-la num ArrayList ou outro tipo de lista.

 

Se você pesquisar na internet encontrarás uma grande variedade de conteúdo explicando as vantagens e desvantagens.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.