2009年2月11日 星期三

第76題

Given:
1. class TestA{
2. public void start(){System.out.println("TestA");}
3. }
4. public class TestB extends TestA{
5. public void start(){System.out.println("TestB");}
6. public static void main(String[] args){
7. ((TestA)new TestB()).start();
8. }
9. }
What is the result?
A. TestA
B. TestB
C. Compilation fails.
D. An exception is thrown at runtime.
答案:B
參考:7-9 多型

--------------------------------------------------------

7. ((TestA)new TestB()).start(); //實體為 TestB, 即使轉型為TestA,實體還是TestB. 所以會呼叫public void start(){System.out.println("TestB");}

沒有留言:

張貼留言