作者roadeat (www)
看板java
標題[問題] 關於super的用法
時間Sun Jun 12 19:06:44 2011
各位好:
請問一下,以下程式碼的結果
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