All methods in an interface are implicitly public, whether you mark them as "public" or not. That means that the methods in any classes that implement those interfaces must also be public; you can't implement an interface method with a non-public method. Your "void test2()" must be "public void test2()".