只是看看下面的程序..Java异常的继承处理
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"); }
} }
编译时错误.....不能覆盖M1()方法
现在,如果我取代RemoteException的父类在子类中IOException异常,反之亦然。然后它正在编译。
任何其他检查的异常组合在这里都不起作用,即使我使用的检查异常处于同一级别。
现在我很困惑,为什么重写只发生在一种情况下,而不是在其他情况下发生?我会真的明白你的答案。
你已经发布了这个问题http://stackoverflow.com/questions/3520596/i-am-learning-the-exception-handling-in-java-basically-in-inheritance – 2010-08-19 10:30:17