只是看看下面的程序..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