just look at the program below ..
import java.io.*;
import java.rmi.*;
class class1
{
public void m1() throws RemoteException
{
System.out.println("m1 in class1");
}
}
class class2 extends class1
{
public void m1() throws IOException
{
System.out.println("m1 in class2");
}
}
class ExceptionTest2
{
public static void main(String args[])
{
class1 obj = new class1();
try{
obj.m1();
}
catch(RemoteException e){
System.out.println("ioexception");
}
}
}
compile-time error ..... cannot override m1 () method
Now, if I replaced RemoteException in the parent class with IOException and vice versa in the child class. Then it compiles.
Any other checked exception combinations do not work here, even if I use a checked exception, which is on the same level.
Now I am confused, why redefinition occurs only in one case, and not in other cases ??? I will be very grateful for your reply.
source
share