Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, tava pensando.
Interfaces é um recurso legal pra você obrigar o programador a desenvolver uma classe seguindo um escolpo já pre definido.
Agora, a classe abstrata tambem pode ser usada pra essa função, com uma grande vantagem, alguns metodos já podem ser implementados.
Então, diante disso eu pergunto: qual a melhor? onde vocês acham que um é melhor do que o outro?
Abraços
Só pra complementar, uma classe abstrata pode implementar uma interface.
Classes abstratas geram herança de métodos, enquanto interfaces apenas assinam os métodos.
diegooliveira,
O que deve ser entendido é o conceito de cada uma, e saber onde usar cada uma delas.
Uma classe abstrata é usada para generalizar várias classes, onde terão outras classes e cada classe terão atributos e/ou métodos específicos, o classico "É um".
Agora uma interface, atua como um contrato para a classe que implementará a mesma, ou seja, todos os métodos definidos na interface, deverão ser usados pela classe que a implementa.
Exemplo:
Três Classes: Forma,Circulo,Cilindro e Calculo.
Circulo é uma Forma.
Cilindro é uma Forma.
Desejo calcular a area da forma que eu estou trabalhando.
Então eu terei uma classe abstrata Forma, duas classes Cilindro e Circulo que herdam de Forma e implementam a interface Calculo, ou seja, as duas deverão ter um metodo calculo em sua classe, as duas terão a mesma assinatura, só que cada uma irá fazer um calculo de uma maneira diferente, e o Cilindro e o Circulo (classe filha) são Formas (super-classe).