《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