java程序设计试题库 下载本文

《Java语言程序设计基础教程》

A、abstract只能修饰类 B、abstract只能修饰方法

C、abstract类中必须有abstract方法

D、abstarct方法所在的类必须用abstract修饰 解答:D

3、 下列哪种说法是正确的( )

A、私有方法不能被子类覆盖。

B、子类可以覆盖超类中的任何方法。

C、覆盖方法可以声明自己抛出的异常多于那个被覆盖的方法。 D、覆盖方法中的参数清单必须是被覆盖方法参数清单的子集。 解答:A

4、关于类继承的说法,正确的是( )

A、Java 类允许多重继承 B、Java接口允许多继承 C、接口和类都允许多继承 D、接口和类都不允许多继承 解答:B

5、 关于抽象类,正确的是______。

A. 抽象类中不可以有非抽象方法

B. 某个非抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法C. 可以用抽象类直接去创建对象 D. 接口和抽象类是同一个概念 解答:B

8、 抽象类A和抽象类B的定义如下:

abstract class A { abstract int getinfo(); }

public class B extends A { private int a = 0; public int getinfo() { return a; } public static void main(String args[]) { B b = new B(); System.out.println(b.getinfo()); } }

关于上述代码说明正确的是( )。

21

21

22

《Java语言程序设计基础教程》

A. 输出结果为0 B.通过编译但没有输出任何结果 C. 第5行不能通过编译 D. 程序第2行不能通过编译 解答:A

9、 下面程序的运行结果是______

class ex4_5_11_A { protected static int count = 0; public ex4_5_11_A() { count++; } }

class ex4_5_11_B extends ex4_5_11_A { public ex4_5_11_B() { count++; } }

class ex4_5_11 { public static void main(String args[]) { ex4_5_11_B x = new ex4_5_11_B(); System.out.println(\ } }

A. count=1 B. count=2 C. count=3 D. count=4 解答:B

10、设有下面两个类的定义:

class Person

{ long id; // 身份证号

String name; // 姓名 }

class Student extends Person { int score; // 入学总分

int getScore(){

return score; } }

问:类Person和类Student的关系是( )

A、包含关系 B、继承关系 C、关联关系 D、无关系,上述类定义有语法错误

22

《Java语言程序设计基础教程》

23

解答:B

11、以下程序代码错误的是( B )。 abstract class P{} class A extends P{}

abstract class B extends P{}

(A)P p=new A(); (B)P p=new B();

(C)A a=new A(); (D)P p=new P(){void foo(){}};

12、下面是People和Child类的定义和构造方法,每个构造方法都输出编号。在执行new Child(\的时候都有哪些构造方法被顺序调用?请选择输出结果 ( D)

class People { String name;

public People() {

System.out.print(1); }

public People(String name) { System.out.print(2); this.name = name; } }

class Child extends People { People father;

public Child(String name) { System.out.print(3); this.name = name;

father = new People(name + \ }

public Child() {

System.out.print(4); } }

A312 B 32 C 432 D 132

23

24

《Java语言程序设计基础教程》

13、选项中哪一行代码可以替换题目中//add code here而不产生编译错误?(A) public abstract class MyClass {

public int constInt = 5; //add code here

public void method() { } }

A public abstract void method(int a); B constInt = constInt + 5; C public int method();

D public abstract void anotherMethod() {}

15、以下哪项是接口的正确定义?( D ) A、 interface B { void print() { } } B、 abstract interface B { void print() }

C、 abstract interface B extends A1,A2 //A1、A2为已定义的接口

{ abstract void print(){ };}

D、 interface B { void print();}

16、A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明: 1. A a0=new A(); 2. A a1 =new B(); 3. A a2=new C();

问以下哪个说法是正确的? ( D ) A、只有第1行能通过编译

B、第1、2行能通过编译,但第3行编译出错

C、第1、2、3行能通过编译,但第2、3行运行时出错 D、第1行、第2行和第3行的声明都是正确的

17、假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C )

class A { int i;

static String s;

void method1() { }

static void method2() { } }

24