作者orinsinal (Chris)
看板java
标题[问题] 关於例外呼叫的试题
时间Sun Jan 24 01:16:01 2010
大家好,近日在作计算机概论的研究所考题,仍发现对例外呼叫的概念不清楚。
两题的问题我没有确定答案,在此请教正确观念:
1.在try block 中(注记22-26),是哪一行丢出例外物件?
Ans. ref2.m1() ?
2.能否将注记26的catch (E1 e)改成 catch (E2 e)?请解释原因
本题我不知如何回答。而此更改并无法通过compile。
感谢各位的帮忙。
===================================
public class E1 extends Exception {
public void printM() {System.out.println("40");}
}
public class E2 extends E1 {
public void printM() {System.out.println("50");}
}
public class A {
public void m1() throws E1 {{System.out.println("10");}}
}
public class B extends A {
public class C extends A{
public void m1() throws E2 {
System.out.println("20");
throw new E2()
}
}
public void m1() {System.out.println("30");
}
public class Test {
public static void main (String[] args) {
try {
A ref = new B(); //22
A ref2 =((B)ref.new C()); //23
ref.m1(); //24
ref2.m1(); //25
} catch (E1 e) { //26
e.printM();
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.167.71.52
※ 编辑: orinsinal 来自: 218.167.71.52 (01/24 01:17)
1F:推 ogamenewbie:A ref 2 = 是哪来的宣告? 01/24 15:10
2F:→ ogamenewbie:E2 的 Ssystem.out.println 又是哪来的 package... 01/24 15:11
3F:推 ogamenewbie:问题一的执行结果跟随着那个执行结果的更具体疑问呢? 01/24 15:12
※ 编辑: orinsinal 来自: 61.230.68.93 (01/24 17:29)
4F:→ orinsinal:宣告打错的地方已修正.第一题是原题抄录,就是问哪一行丢 01/24 17:31
※ 编辑: orinsinal 来自: 61.230.68.93 (01/24 17:31)
5F:→ orinsinal:出例外物件. 这个程式输出会是 30 20 50 01/24 17:32
6F:推 SKelemeNt:这好像就是多型概念? 01/24 22:14