interface eh uma parecido com uma classe abstrata (mas tem algumas diferencas), toda classe pode extender a uma classe (des de q n seja uma de suas subclasses), e implementar qntas classes for desejado…
a principal diferenca eh q com interface o construtor da superclasse n eh chamado…
as interfaces pode conter metodos q podem ser usados pelas suas subclasses e tb definir metodos abstratos, obrigando suas subclasses a sobreescrevelos…
no ex q vc postou, as subclasses serao obrigadas a escrever os seguitnes metodos:
boolean validade();
String getValidationError();
dai uma outra classe pode criar uma variavel do tipo ValidadeElement (mas n pode instanciar a interface), e pode instanciar as suas subclasses nessa variavel, entaum vc podera usar esses dois metodos sem problemas, afinal, a interface esta garantindo q eles existirao nas subclasses…
Quando vc cria uma interface, todos os métodos serão abstratos, mesmo que vc não coloque abstract… então, em uma interface não é permitido que um método seja implemetado. Resumindo… em uma interface terá somente as assinaturas dos métodos…
blz… acho q entendi…
na interface eu só ponho a assinatura dos métodos?
eu nao posso programar nada la dentro?
tipo fazer contas, manipular dados, mesmo q imprima nada? tipo só retornando valores?
sempre os métodos serão vazios?
se for isso, qual é a utiliadade de fazer a interface?
[quote=“DanielBadawi”]blz… acho q entendi…
na interface eu só ponho a assinatura dos métodos?
eu nao posso programar nada la dentro?
tipo fazer contas, manipular dados, mesmo q imprima nada? tipo só retornando valores?
sempre os métodos serão vazios?
se for isso, qual é a utiliadade de fazer a interface?
valeu![/quote]
Uma interface não pode ter métodos implementados… somente a assinatura… Uma das maiores vantagens, na minha opnião, é a padronização… ou seja, quando vc define uma interface, e classes a implementam, estas classes teem características em comum, só que são implementadas nas classes de maneira diferente…
… o “.” (ponto) ta incluso no teu classpath? :roll: …ele representa o diretorio corrente na hr de compilar as classes, o javac vai procurar pela tua classe tb no diretorio corrente…