一. 選擇題(共50題,每題2分,共100分。多選題選不全或選錯(cuò)都不得分。)
1. 以下屬于面向?qū)ο蟮奶卣鞯氖?C,D)。(兩項(xiàng))
A) 重載
B) 重寫
C) 封裝
D) 繼承
2. 以下代碼運(yùn)行輸出是(C)
public class Person{
private String name=”Person”;
int age=0;
}
public class Child extends Person{
public String grade;
public static void main(String[] args){
Person p = new Child();
System.out.println(p.name);
}
}
A) 輸出:Person
B) 沒有輸出
C) 編譯出錯(cuò)
D) 運(yùn)行出錯(cuò)
3. 在使用super 和this關(guān)鍵字時(shí),以下描述正確的是(A)
A) 在子類構(gòu)造方法中使用super()顯示調(diào)用父類的構(gòu)造方法,super()必須寫在子類構(gòu)造方法的第一行,否則編譯不通過(guò)
B) super()和this()不一定要放在構(gòu)造方法內(nèi)第一行
C) this()和super()可以同時(shí)出現(xiàn)在一個(gè)構(gòu)造函數(shù)中
D) this()和super()可以在static環(huán)境中使用,包括static方法和static語(yǔ)句塊
4. 以下對(duì)封裝的描述正確的是(D)
A) 只能對(duì)一個(gè)類中的方法進(jìn)行封裝,不能對(duì)屬性進(jìn)行封裝
B) 如果子類繼承了父類,對(duì)于父類中進(jìn)行封裝的方法,子類仍然可以直接調(diào)用
C) 封裝的意義不大,因此在編碼時(shí)盡量不要使用
D) 封裝的主要作用在于對(duì)外隱藏內(nèi)部實(shí)現(xiàn)細(xì)節(jié),增強(qiáng)程序的安全性
5. 以下對(duì)繼承的描述錯(cuò)誤的是(A)
A) Java中的繼承允許一個(gè)子類繼承多個(gè)父類
B) 父類更具有通用性,子類更具體
C) Java中的繼承存在著傳遞性
D) 當(dāng)實(shí)例化子類時(shí)會(huì)遞歸調(diào)用父類中的構(gòu)造方法
6. 以下程序的運(yùn)行結(jié)果是(D)
class Person{
public Person(){
System.out.println(“this is a Person”);
}
}
public class Teacher extends Person{
private String name=”tom”;
public Teacher(){
System.out.println(“this is a teacher”);
super();
}
public static void main(String[] args){
Teacher teacher = new Teacher();
System.out.println(this.name);
}
}
A) this is a Person
this is a teacher
tom
B) this is a teacher
this is a Person
tom
C) 運(yùn)行出錯(cuò)
D) 編譯有兩處錯(cuò)誤
7. 以下說(shuō)法錯(cuò)誤的是()
A) super.方法()可以調(diào)用父類的所有非私有方法
B) super()可以調(diào)用父類的所有非私有構(gòu)造函數(shù)
C) super.屬性可以調(diào)用父類的所有非私有屬性
D) this和super關(guān)鍵字可以出現(xiàn)在同一個(gè)構(gòu)造函數(shù)中
8. 以下關(guān)于final關(guān)鍵字說(shuō)法錯(cuò)誤的是(A,C)(兩項(xiàng))
A) final是java中的修飾符,可以修飾類、接口、抽象類、方法和屬性
B) final修飾的類肯定不能被繼承
C) final修飾的方法不能被重載
D) final修飾的變量不允許被再次賦值
9. 訪問(wèn)修飾符作用范圍由大到小是(D)
A) private-default-protected-public
B) public-default-protected-private
C) private-protected-default-public
D) public-protected-default-private
10. 以下(D)不是Object類的方法
A) clone()
B) finalize()
C) toString()
D) hasNext()
11. 多態(tài)的表現(xiàn)形式有(A)
A) 重寫
B) 抽象
C) 繼承
D) 封裝
12. 以下對(duì)重載描述錯(cuò)誤的是(B)
A) 方法重載只能發(fā)生在一個(gè)類的內(nèi)部
B) 構(gòu)造方法不能重載
C) 重載要求方法名相同,參數(shù)列表不同
D) 方法的返回值類型不是區(qū)分方法重載的條件
13. 以下(D)添加到ComputerBook中不會(huì)出錯(cuò)
class Book{
protected int getPrice(){
return 30;
}
}
public class ComputerBook extends Book{
}
A) protected float getPrice(){}
B) protected int getPrice(int page){}
C) int getPrice(){}
D) public int getPrice(){return 10;}
14. 以下對(duì)抽象類的描述正確的是(C)
A) 抽象類沒有構(gòu)造方法
B) 抽象類必須提供抽象方法
C) 有抽象方法的類一定是抽象類
D) 抽象類可以通過(guò)new關(guān)鍵字直接實(shí)例化
15. 以下對(duì)接口描述錯(cuò)誤的有(D)
A) 接口沒有提供構(gòu)造方法
B) 接口中的方法默認(rèn)使用public、abstract修飾
C) 接口中的屬性默認(rèn)使用public、static、final修飾
D) 接口不允許多繼承
16. 以下代碼,描述正確的有(A)
interface IDemo{
public static final String name;1
void print();2
public void getInfo();3
}
abstract class Person implements IDemo{4