Eu gostaria de tirar uma duvida sobre classe abstrata e interface, não sei se entendi muito bem mas vamos.
Classe abstrata: eu posso ter metodo abstrato e metodo com alguma coisa dentro;
Classe interface: eu so posso ter assinatura do metodo;
Seria essa a diferença? Ou seja em uma classe abstrata eu posso ter metodo abstrato e metodos que nw sejam abstrato e na interface eu só tenho a assinatura.
Eu gostaria de tirar uma duvida sobre classe abstrata e interface, não sei se entendi muito bem mas vamos.
Classe abstrata: eu posso ter metodo abstrato e metodo com alguma coisa dentro;
Classe interface: eu so posso ter assinatura do metodo;
Seria essa a diferença? Ou seja em uma classe abstrata eu posso ter metodo abstrato e metodos que nw sejam abstrato e na interface eu só tenho a assinatura.
Agradeços a todos
Sim, é isso.
hugo.campos
Valeu renamed. Acho que agora eu aprendi. Onde sera que posso acha um boa explicação sobre composição, eu to procurando na internet mais so fala fala e não acho na concreto.
robertoMoraes
pensse dessa forma:
classe mae abstrata:
quando vc tiver varias classes filhas q vao implementar o mesmo metodo da mesma forma porem com valores diferentes
vc pode passa esses valores para cima para a classe mae e executar 1 unica vez o metodo
alem d poder decidir entre usar 1 metodo abstrato q faz com q todas as classes filhas sejao obrigadas a executar
e metodos com corpo e (nao abstratos) na classe mae
interface:
aki e como c vc fizesse 1 script d metodos sem corpo e tudo q implementar essa interface e obrigado e executar os metodos
e tambem e 1 bom lugar para definir constantes
ViniGodoy
Classes abstratas:
Você pode ter atributos;
Você pode ter métodos com implementações;
Você só pode herdar de uma única classe abstrata;
Você pode ter métodos abstratos (embora não seja obrigado);
Interfaces:
Você não pode ter atributos;
Você não pode ter métodos com implementações;
É possível implementar quantas interfaces você quiser;
Você só tem métodos abstratos;
ViniGodoy
Na verdade, interface são um péssimo local para se definir constantes. É considerado, inclusive, um anti-pattern.