SCJP 1.6版考題 134
出自 陳富國維基館
Given: 5. classA{ 6. void foo() throws Exception{throw new Exception();} 7. } 8. class SubB2 extends A{ 9. void foo(){System.out.println("B ");} 10. } 11. class Tester{ 12. public static void main(String[] args){ 13. A a = new SubB2(); 14. a.foo(); 15. } 16. } What is the result? A. B B. B, followed by an Exception. C. Compilation fails due to an error on line 9. D. Compilation fails due to an error on line 14. E. An Exception is thrown with no other output.
解答
Ans: D
解說:
物件多形是發生於執行時期,編譯時期是以物件參考的型態來看叫用何種型態的的方法 13行a是型態A,14行a.foo()是叫用類別A的foo方法,此foo方法宣告會丟出Exception例外, 因此叫用此foo方法時,必須將foo叫用敘述放在try區塊中,補捉foo方法會拋出的例外。
|