diferença entre interface e classe abstrata

ae pessoal
to iniciandi em java e to com uma dúvida…
qual eh a diferença entre uma interface e uma classe abstrata?

grato

Julio Romano

Veja estes topicos:

http://www.guj.com.br/posts/list/20782.java
http://www.guj.com.br/posts/list/10477.java
http://www.guj.com.br/posts/list/17690.java
http://www.guj.com.br/posts/list/6854.java

Rafael

[quote=julioromano]ae pessoal
qual eh a diferença entre uma interface e uma classe abstrata?
[/quote]

http://www.guj.com.br/content/articles/oop/oop.pdf

Google: saving lifes since 1998! :wink:

[]'s
Marco Campêlo

Há alguma semelhança entre classes abstratas e interfaces, como por exemplo: ambas exigem que você implemente métodos abstratos.

Uma diferença bem interessante é que com interfaces você pode simular herança múltipla. Você pode definir uma classe assim:

public class MyClass extends SuperClass1 
  implements Interface1, Interface2, Interface3

É um recurso poderoso em alguns momentos.

valeu galera!
agora entendi!
brigadão

[quote=J2Alex]Há alguma semelhança entre classes abstratas e interfaces, como por exemplo: ambas exigem que você implemente métodos abstratos.

Uma diferença bem interessante é que com interfaces você pode simular herança múltipla. Você pode definir uma classe assim:

public class MyClass extends SuperClass1 
  implements Interface1, Interface2, Interface3

É um recurso poderoso em alguns momentos.[/quote]

pois é, em muitos lugares se fala que interfaces em java servem para resolver a questão da herança mulltipla.
mas isso não é verdade, pq vc não herda caracteristicas, nem funcionalidades, vc tem que implementa-las.
interfaces servem para definir um contrato que as classe que implementam devem seguir, e que ficara exposta aos outros objetos.
por isso é uma boa pratica desenvolver orientado as interfaces, e usar algo assim:

MinhaInterface obj = new MinhaClasseQueIplementaInterface();

pois os objetos que forem acessar esse objeto, so teram acesso ao contrato da interface, garantindo assim o comportamento esperado.

[]'s

Um bom exemplo da utilização da interface é a maneira como trabalhamos com JDBC. Como utilizamos as interfaces, podemos mudar de driver ou de banco de dados apenas alterando o driver que é carregado. E todos os drivers implementam as interfaces do JDBC.

[]'s
Marco Campêlo

[quote=mcampelo]
Um bom exemplo da utilização da interface é a maneira como trabalhamos com JDBC. Como utilizamos as interfaces, podemos mudar de driver ou de banco de dados apenas alterando o driver que é carregado. E todos os drivers implementam as interfaces do JDBC.

[]'s
Marco Campêlo[/quote]

isso mesmo, é um bom exemplo de uso de interface. :smiley:

[]'s

Parabéns excelente exemplo agora consegui enxergar melhor interface!

[quote=mcampelo][quote=jgbt]
interfaces servem para definir um contrato que as classe que implementam devem seguir, e que ficara exposta aos outros objetos.
[/quote]

Um bom exemplo da utilização da interface é a maneira como trabalhamos com JDBC. Como utilizamos as interfaces, podemos mudar de driver ou de banco de dados apenas alterando o driver que é carregado. E todos os drivers implementam as interfaces do JDBC.

[]'s
Marco Campêlo[/quote]