(單選題)1亦鳞、對于如下代碼段可以放入到橫線位置兼犯,使程序正確編譯運行爷光,而且不產(chǎn)生錯誤的選項是()
class?A{
public?A foo(){return?this;}
}
class?B?extends?A{
public?A foo(){
return?this;
}
}
class?C?extends?B
{
_______
}
A public void foo(){}
B public int foo(){return 1;}
C public A foo(B b){return b;}
D public A foo(){return A;}
正確答案是:C
復(fù)習(xí)一下子類方法重寫父類方法遵循“兩同兩小一大”的規(guī)則
子類覆蓋父類要遵循“兩同兩小一大”
“兩同”即方法名相同,形參列表相同
“兩小”指的是子類方法返回值類型應(yīng)比父類方法返回值類型更小或相等郑原,子類方法聲明拋出的異常類應(yīng)比父類方法聲明拋出的異常類更小或相等腌紧。
(注:看到有網(wǎng)友有這樣的疑問茸习,父類方法返回值是double,子類修改成int為什么不行呢寄啼?
這是因為返回值類型更大或者更小逮光,是對于同一類型而言的代箭。也就是說墩划,返回值的類型需要有繼承關(guān)系才去考慮大小這個概念。類型不同嗡综,肯定不是方法重寫)
“一大”指的是子類方法的訪問權(quán)限應(yīng)比父類方法的訪問權(quán)限更大或相等乙帮。
注意:覆蓋方法和被覆蓋方法要么都是類方法,要么都是實例方法极景,不能一個是類方法一個是實例方法察净,否則編譯出錯。
所以盼樟,根據(jù)這個原理氢卡,再來分析上面這道題。
A.public void foo(){}
返回值類型與父類不一致晨缴,所以不可能是方法的重寫译秦。又因為方法名相同,那么只能是方法重載,而方法重載有需要滿足三個條件:形參個數(shù)筑悴、順序们拙、類型必須有一者不同,A選項都不滿足阁吝,錯
B.public int foo(){return 1;}
與A選項一樣
C.public A foo(B b){return b;}
返回值類型與父類相同砚婆,但由于參數(shù)列表不同,所以是對父類方法的重載
D.public A foo(){return A;}
語法錯誤
(單選題)2突勇、要表示10個學(xué)生的成績装盯,下列聲明并初始化數(shù)組正確的是()
A int[] score=new int[ ]
B int score[10]
C int score[]=new int[9]
D int score[]=new int[10]
正確答案是:D
解析:
以下兩種寫法都可以:
int score[] = new int[10];
int[] score = new int[10];
注意了:取數(shù)組第10個的值是 socre[9] 因為數(shù)組的下標(biāo)是從0開始
(單選題)3、關(guān)于下面代碼int[] x=new int[25];描述正確的是()
A x[25]存放了數(shù)據(jù)“”甲馋。
B x[24] 存放了數(shù)據(jù)“”验夯。
C 若訪問x[25],程序?qū)伋霎惓摔刁!?/p>
D x[1]訪問此數(shù)組的第一個元素挥转。
正確答案是:C
解析:
A:不存在x[25] 索引從0開始到length-1
B:x[24] 存的是默認(rèn)值0(java中沒有''這一說)
C:超出內(nèi)存正確
D:第二元素
(單選題) 4、已知聲明并初始化二維數(shù)組 int a[ ][ ]={{1,2},{3,4},{5,6}} 共屈,則 a[1][1] 的值為()
A 1
B 2
C 4
D 5
正確答案是 :C
解析:
二維數(shù)組: 0 1
0 {1,2}
1 {3,4}
2 {5,6} 所以a[1][1]=4;
(單選題)5绑谣、面向?qū)ο蟪绦蛟O(shè)計語言的三個基本特征是?( )
A 封裝拗引、接口和多態(tài)
B 繼承借宵、接口和動態(tài)
C 跨平臺、接口和動態(tài)
D 封裝矾削、繼承和多態(tài)
正確答案是:D
解析:
封裝:訪問權(quán)限 繼承:子父類之間屬性方法的訪問 多態(tài):同一個方法名的不同功能
(單選題)1壤玫、對于以下代碼段,4個輸出語句中輸出true的個數(shù)是( )哼凯。
class A{}
class B extends A{}
class C extends A{}
class D extends B{}
A obj = new D();
System.out.println(obj instanceof B);
System.out.println(obj instanceof C);
System.out.println(obj instanceof D);
System.out.println(obj instanceof A);
A 1
B 2
C 3
D 4
正確答案是:C
解析:
C直接繼承自A欲间,obj的實際類型為D,和C沒有關(guān)系断部。所以obj instanceof C 輸出false猎贴。
(單選題)2、代碼System. out. println(10 % 3 * 2)蝴光;將打印出她渴?
A 1
B 2
C 4
D 6
正確答案是:B
解析:%和*優(yōu)先級相同,順序執(zhí)行蔑祟,10%3=1 1*2=2
(不定項選擇題) 3趁耗、對于構(gòu)造方法,下列敘述正確的是()疆虚。
A 構(gòu)造方法的優(yōu)先級一般比代碼塊低苛败。
B 構(gòu)造方法的返回類型只能是void型右冻。
C 構(gòu)造方法的主要作用是完成對類的對象的初始化工作。
D 一般在創(chuàng)建新對象時著拭,系統(tǒng)會自動調(diào)用構(gòu)造方法纱扭。
正確答案是:ACD
解析:
A:靜態(tài)成員變量或靜態(tài)代碼塊>main方法>非靜態(tài)成員變量或非靜態(tài)代碼塊>構(gòu)造方法
B:think in java中提到構(gòu)造器本身并沒有任何返回值。所以不能用void
C:構(gòu)造方法的主要作用是完成對類的對象的初始化工作儡遮。
D:一般在創(chuàng)建(new)新對象時乳蛾,系統(tǒng)會自動調(diào)用構(gòu)造方法。
(單選題)4鄙币、 java中用()字指明繼承關(guān)系.用()關(guān)鍵字指明對接口的實現(xiàn)肃叶。
A implements extends
B extends implements
C extend implement
D implement extend
正確答案是:B
解析:extends表繼承父類
implements表是實現(xiàn)接口
(單選題)5、如果希望某個變量只可以被類本身訪問和調(diào)用十嘿,則應(yīng)該使用下列哪一種訪問控制修飾因惭?
A public
B private
C private protected
D protected
正確答案是:B
解析:private修飾的僅自己能訪問,protected同包或子類可以訪問绩衷,public是不同包也可以訪問蹦魔。
學(xué)習(xí)Java的同學(xué)注意了!?妊唷勿决!
學(xué)習(xí)過程中遇到什么問題或者想獲取學(xué)習(xí)資源的話,歡迎加入Java學(xué)習(xí)交流群346942462招盲,我們一起學(xué)Java低缩!