看板 java 關於我們 聯絡資訊
各位好: 請問一下,以下程式碼的結果 class A{ public void process(){ System.out.print("A, "); } } class B extends A{ public void process() throws IOException{ super.process(); System.out.print("B, "); throw new IOException(); } } public static void main(String[] args){ try{ new B().process(); }catch(IOException e){System.out.println("Exception");} } 答案是compilaion fails 解答說是class B的super.process();出錯 但是B不是繼承A嗎?怎麼不能用super取到A的方法呢? 謝謝您的閱讀 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.225.103
tkcn:問題是出在 B.process() 不能丟出 A.process() 沒有的例外吧 06/12 19:09
roadeat:所以是因為父類別A沒有丟例外,所子類別B不能丟例外嗎? 06/12 22:41
gameking:應該是說這樣寫的話B.process就變成新函式 不算複寫 06/13 10:53
gameking:所以父類別就找不到這樣一個可以擲出例外的process使用 06/13 10:55
roadeat:謝謝各位的解惑 06/13 16:52