What will happen when you attempt to compile and run the following code?
<code><pre>
class Base
{
private void amethod(int iBase)
{
System.out.println("Base.amethod()");
}
}
class Over extends Base
{
public static void main(
String argv[])
{
Over o = new Over();
int iBase = 0;
o.amethod(iBase);
}
public void amethod(int iOver)
{
System.out.println("Over.amethod()");
}
}
</pre></code>
Answer:
D is correct(Output of Over.amethod). Please note that method amethod() has been overridden. Here a private method is being overridden to public. The overridden method can't be more private than the original method, but in the above case its overridden correctly. Thus its perfectly valid. The output will be Over.amethod().
Is this correct?

Not questioning the answer, but the explanation.
[This message has been edited by Jim Hall (edited December 17, 2001).]