From Dictionary.com:
Interface: A point at which independent systems or diverse groups interact...
When you think of an interface,
you should think of the way that you interact with something. In
Java, how do you interact with another object? Most commonly, you invoke methods on that object.
Therefore, we have the notion of an Interface. An Interface isn't designed to detail how a class should be implemented. Rather, an interface details how one should interact with an object.
What instance variables are defined is really an "implementation detail" and should not be included in the interface. The interface says that you must define method x, but it does not say anything about how you must implement that method and what variables you must use in order to do so.
If you want to define common behavior, as well as common members (such as instance variables), you should be thinking about inheritance from another class, not implementation of an interface. Inheritance, unlike implementation of an interface, defines both the behaviors a class demonstrates as well as internal data contained by that class.
All fields declared within an interface are implicity coderanch, static, and final to reinforce this notion. The only reason one should be using fields in an interface, in my opinion, is to have constants that are somehow related to the methods defined in that interface.
I hope that helps,
Corey