Implementação de Interface

Bem pessoal a dúvida e com relação a implementação de Interfaces. No seguinte código recebo um erro por não declarar a classe como abstrata:

interface A { public void someMethod(); } public class B implements A { public void someMethod(); }

se altera-lo acrescentando native ele compila normalmente:

interface A { public void someMethod(); } public class B implements A { public native void someMethod(); }

Alguém pode me explicar porque ocorre isso???

porque no primeiro código vc não tem implementação para o método, e como ele não é abstrato, vc precisa de uma implementação… No segundo vc modificou colocando o método como native, e isso diz que o método tem implementação, mas ela não é em java.
E ai tem umas regrinhas de como fazer essa implementação native para o java encontrar, seila nunca fiz, mas esse link deve te ajudar hehe
http://www.javafree.org/javabb/viewtopic.jbb?t=13913

Mas resumindo, no segundo caso é como se vc tivesse uma implementação e no primeiro não tem…

So uma Observação…

nas interfaces TODOS os métodos são abstratos, ou seja… mesmo que tu declare…

public void a();
ele pra interface vai ser…
public abstract void a();

entao… para a sua clase B que implementa a interface compilar ali… tu tera que adcionar o modificador abstract …

public abstract class B implements A { public abstract void a(); }
OK ?

Ok pessoal, a dúvida era com relação a implementação de métodos native mesmo.

Valeu!!!