Could anyone tell me why this is happening here. When I compile the following code I get an error "The method void aMethod() declared in class Test cannot override the method of the same signature declared in interface A. The access modifier is made more restrictive." The code is in one source file (called Test.java) but the same happens when it is split into four separate files.
I don't understand why this is happening. The access modifier for the method is "friendly" and the class & interface are in the same, default, package so why the problem? The only way I can compile this file is by making the method declaration in class Test public. I thought I understood access modifiers but this has thrown me. Please help me understand this because I've got my exam on Wednesday. Thank you, Lee.
Joined: Aug 18, 2000
Lee, the default modifiers for any interface are always public (for fields and methods). Moreover, interface methods can't be native, static, synchronized, final, private, or protected.
Joined: Aug 11, 2000
Thanks for your speedy reply, yanish. You've put my mind at rest. I'm amazed that no matter how much you think you know, there's always something manages to surprise you. Thanks again, Lee