// declaring an interface public interface MyInterface { // just the signature, no body, implied instance and public. int aMethod(); // ... } // --------------- // declaring a class that implements some interfaces public class MyClass implements MyInterface, AnotherInterface { // with body, or else declared abstract. Must be explicitly declared public. public int aMethod() { return 0; } // ... } // --------------- // class reference public static MyClass mc = new MyClass(); // interface reference public static MyInterface mi= new MyClass(); // you CANNOT!!! say public static MyInterface mi = new MyInterface();