作者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
1F:→ tkcn:问题是出在 B.process() 不能丢出 A.process() 没有的例外吧 06/12 19:09
2F:→ roadeat:所以是因为父类别A没有丢例外,所子类别B不能丢例外吗? 06/12 22:41
3F:推 gameking:应该是说这样写的话B.process就变成新函式 不算复写 06/13 10:53
4F:→ gameking:所以父类别就找不到这样一个可以掷出例外的process使用 06/13 10:55
5F:→ roadeat:谢谢各位的解惑 06/13 16:52