公眾號:mywangxiao
及時發(fā)布考試資訊
分享考試技巧、復(fù)習(xí)經(jīng)驗
新浪微博 @wangxiaocn關(guān)注微博
聯(lián)系方式 400-18-8000
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.
翻譯
下面關(guān)于繼承的哪些敘述是正確的。
A. 在java中只允許單一繼承。
B. 在java中一個類只能實現(xiàn)一個接口。
C. 在java中一個類不能同時繼承一個類和實現(xiàn)一個接口。
D. java的單一繼承使代碼更可靠。
答案A,D 解析
在java中一個類只能有一個直接父類,但是可以實現(xiàn)多個接口,在繼承的同時可以實現(xiàn)接口,之所以取消多繼承的原因是多繼承使得代碼產(chǎn)生很多問題,而使用單一繼承則可以使代碼更可靠。
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
翻譯
第十行的聲明將調(diào)用哪些方法。
答案
D 解析
變量t是一個Person對象,但是它是用Teacher實例化的,這個問題涉及到j(luò)ava的編譯時多態(tài)和運行時多態(tài)的問題,就編譯時多態(tài)來說,t實際上是一個Person類,這涉及到類型的自動轉(zhuǎn)換(將一個子類的實例賦值給一個父類的變量是不用進(jìn)行強制類型轉(zhuǎn)換,反之則需要進(jìn)行強制類型轉(zhuǎn)換,而且被賦值的變量實際上應(yīng)該是一個子類的對象),如果對t調(diào)用了子類中新增的方法則造成編譯時錯誤編譯將不能通過,而在運行時,運行時系統(tǒng)將根據(jù)t實際指向的類型調(diào)用對應(yīng)的方法,對于本例來說,t.print(10)將調(diào)用t實際指向的Teacher類的對應(yīng)方法。在java中,可以用一個子類的實例實例化父類的一個變量,而變量在編譯時是一個父類實例,在運行時可能是一個子類實例。
相關(guān)鏈接:JAVA認(rèn)證考試報考指南 考試論壇 考試知道 考試動態(tài)
(責(zé)任編輯:fky)