When you have an interface declared like this.
public interface Doable { int myInt = 10; boolean canDoIt1(); int doIt2(int num); }
The code will implicitly look like this.
public interface Doable { [b]public static final[/b] int myInt = 10; [b]public[/b] boolean canDoIt1(); [b]public[/b] int doIt2(int num); }
Notice that any variables declared in the interface will become static and final because you can only define constants on an interface.
According to the rules of implementation the first concrete class has to implement the interface. This means that abstract classes do not have to implement the methods on the interface.
public abstract class DoStuff implements Doable { }
// Json