Diferença entre abstract method(); normal method() {}?

Pessoal, estou com uma pequena dúvida… Tenho minha classe abstrata e ela possui métodos e métodos abstratos. Qual seria a diferença entre essas declarações?

public abstract class Fruit { public void isPutrefy() {} public abstract isPutrefy(); }

public class Apple extends Fruit { //e agora josé !? }
Qual a diferença dos métodos quando eu subclassificar a classe Fruit?

Cara, isso que você vai fazer é polimorfismo:

Vamos supor que agora você criou a classe Abacate e disse que é(extends) uma fruta, então ao chamar fruta.atributo dela, ela vai se adequar ao objeto criado, que é o abacate, caso ele não possua o método, ele passa a responsabilidade para fruta.

É meio dificil o conceito (pra mim), mas aqui você entende bem:

http://blog.caelum.com.br/2010/06/28/compondo-seu-comportamento-heranca-chain-of-responsibility-e-interceptors/

não sei explicar o polimorfismo muito bem

flws

dei uma relida la no blog e vi que está um tanto complexo

faça o download da apostila fj11
http://downloads.caelum.com.br/apostila/caelum-java-objetos-fj11.pdf

e vai nos capítulos de herança e polimorfismo, eles devem te tirar a dúvida com ótimos exemplos.

té+

Se eu não me engano a sua classe Apple vai herdar o metodo " public void isPutrefy() {} " sem ser obrigada a reescreve-lo
e vai ser obrigada a reescrever o metodo "public abstract isPutrefy(); " justamente pq ele é abstrato.
[]'s

Valeu Gemini. entendi.