11. Which statements about inheritance are true?
A. In Java programming language only allows single inheritance.
B. In Java programming language allows a class to implement only one
interface.
C. In Java programming language a class cannot extend a class and implement
a interface together.
D. In Java programming language single inheritance makes code more
reliable.
翻譯
下面關于繼承的哪些敘述是正確的。
A. 在java中只允許單一繼承。
B. 在java中一個類只能實現一個接口。
C. 在java中一個類不能同時繼承一個類和實現一個接口。
D. java的單一繼承使代碼更可靠。
答案A,D 解析
在java中一個類只能有一個直接父類,但是可以實現多個接口,在繼承的同時可以實現接口,之所以取消多繼承的原因是多繼承使得代碼產生很多問題,而使用單一繼承則可以使代碼更可靠。
12.
1) class Person {
2) public void printValue(int i, int j) {/*…*/ }
3) public void printValue(int i){/*...*/ }
4) }
5) public class Teacher extends Person {
6) public void printValue() {/*...*/ }
7) public void printValue(int i) {/*...*/}
8) public static void main(String args[]){
9) Person t = new Teacher();
10) t.printValue(10);
11) }
12) }
Which method will the statement on line 10 call?
A. on line 2
B. on line 3
C. on line 6
D. on line 7
翻譯
第十行的聲明將調用哪些方法。
答案
D 解析
變量t是一個Person對象,但是它是用Teacher實例化的,這個問題涉及到java的編譯時多態和運行時多態的問題,就編譯時多態來說,t實際上是一個Person類,這涉及到類型的自動轉換(將一個子類的實例賦值給一個父類的變量是不用進行強制類型轉換,反之則需要進行強制類型轉換,而且被賦值的變量實際上應該是一個子類的對象),如果對t調用了子類中新增的方法則造成編譯時錯誤編譯將不能通過,而在運行時,運行時系統將根據t實際指向的類型調用對應的方法,對于本例來說,t.print(10)將調用t實際指向的Teacher類的對應方法。在java中,可以用一個子類的實例實例化父類的一個變量,而變量在編譯時是一個父類實例,在運行時可能是一個子類實例。
相關鏈接:JAVA認證考試報考指南 考試論壇 考試知道 考試動態
(責任編輯:fky)