[quote=digaoneves]Bom, vamos la…
Herança é quando uma classe herda de uma classe pai, todos os seus atributos e métodos, normalmente ocorre de uma classe genérica para uma mais específica.
Como de Animal para Cachorro. Um cachorro é um animal, portanto a herança faz sentido, não ?
Agora interface é como um contrato a ser cumprido, quando uma classe implementa uma interface, ela está dizendo que cumprirá tudo o que foi definido naquela interface, mas não chega a ser exatamente herança.
Ex:[code]public interface Quicavel{
public void quicar();
}
public class Bola implements Quicavel{
public void quicar(){
System.out.println("Bola quicando!");
}
}
public class Pneu implements Quicavel{
public void quicar(){
System.out.println("Pneu quicando!");
}
}[/code] Tente entender a diferença, a “habilidade” de quicar, ou poder quicar, é uma característica em comum entre as duas classes, ou seja, além dessa característica, uma classe não tem nada a ver com a outra.
Você poderia fazer uma classe Bola, que tem o método quicar, e fazer Pneu herdar de Bola esse método, mas se for pensar, isso não faz sentido, pois um Pneu não é uma Bola.
Só um aviso pra tomar cuidado quando usar herança.
Se eu falei alguma besteira aqui, por favor me corrijam.
EDIT: Só pra constar, eu tirei esse exemplo do livro da Kathy Sierra e do Bert Bates, pra certificação SCJP 6, onde é usada a interface Bounceable como exemplo.[/quote]
Concordo com vc, tava confundindo herança com É-UM, no proprio livro na parte de Relacionamento É-UM diz o seguinte (O conceito É-UM é baseado na herança de Classes ou Implementação de Interfaces. O termo É-UM é uma maneira de dizer, “esse item é um tipo desse outro”