本科Java题库

6.什么是成员变量的继承?什么是成员变量的覆盖?

7.举例说明什么是上转型对象,上转型对象的操作原则是什么? 8.简述接口定义的一般格式。

9.什么是接口?如何定义接口?接口与类有何区别?

10.一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象方法? 11.比较接口与抽象类的异同。

12.什么是抽象类?什么是抽象方法?各自有什么特点? 13.什么是最终类?什么是最终变量?什么是最终方法? 三、选择题

1.下面关于类的继承性的描述中,错误的是( C )。 A.继承是在已有的基础上生成新类的一种方法 B.Java语言要求一个子类只有一个父类 C.父类中成员的访问权限在子类中将被改变

D.子类继承父类的所有成员,但不包括私有的成员方法

2.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是( B )。

A.默认 B.protected C.private D.public 3.在类的修饰符中,规定只能被同一包类所使用的修饰符是( B )。 A.public B.默认 C.final D.abstract 4.下列关于子类继承父类的成员描述中,错误的是( C )。

A.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法。 B.方法重载是编译时处理的,而方法覆盖是在运行时处理的。 C.子类中继承父类中的所有成员都可以访问。

D.子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量。

5.定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,则下面哪些声明是正确的?( AB )

A.public class MyClass extends Object B.public class MyClass C.private class MyClass extends Object D.class MyClass extends Object 6.下列关于继承性的描述中,错误的是( C )。

A.一个类可以同时生成多个子类 B.子类继承了父类中除私有的成员以外的其他成员 C.Java支持单重继承和多重继承 D.Java通过接口可使子类使用多个父类的成员 7.下列关于抽象类的描述中,错误的是( C )。

A.抽象类是用修饰符abstract说明的 B.抽象类是不可以定义对象的 C.抽象类是不可以有构造方法的 D.抽象类通常要有它的子类 8.设有如下类的定义: public class parent { int change() {} }

class Child extends Parent { }

则,下面哪些方法可加入Child类中?( AB )

A.public int change(){ } B.int chang(int i){ }

C.private int change(){ } D.abstract int chang(){ } 9.下列关于构造方法的叙述中,错误的是( D )。

A.构造方法名与类名必须相同 B.构造方法没有返回值,且不用void声明

C.构造方法只能通过new自动调用 D.构造方法不可以重载,但可以继承 10.下面叙述中,错误的是( C )。

A.子类继承父类 B.子类能替代父类 C.父类包含子类 D.父类不能替代子类 11.下列对多态性的描述中,错误的是( B )。

A.Java语言允许方法重载与方法覆盖 B.Java语言允许运算符重载

C.Java语言允许变量覆盖 D.多态性提高了程序的抽象性和简洁性 12.下面关于接口的描述中,错误的是( A )。

A.一个类只允许继承一个接口 B.定义接口使用的关键字是interface C.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现 D.接口实际上是由常量和抽象方法构成的特殊类

13.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?( C ) A.ArrayList myList=new Object(); B.ArrayList myList=new List(); C.List myList=new ArrayList(); D.List myList=new List();

14.下列哪些方法与方法public void add(int a){}为合理的重载方法?( ACD ) A.public void add(char a) B.public int add(int a)

C.public void add(int a,int b) D.public void add(float a)

15.MAX_LENGTH是int型public成员变量,变量值保持为常量100,其定义是( C )。 A.public int MAX_LENGTH=100; B.final public int MAX_LENGTH=100; C.public final int MAX_LENGTH=100; D.final int MAX_LENGTH=100; 四、判断题

1.Java语言中,构造方法是不可以继承的。( √ )

2.子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目。( × ) 3.抽象方法是一种只有说明而无具体实现的方法。( √ ) 4.Java语言中,所创建的子类都应有一个父类。( √ )

5.调用this 或super构造方法的语句必须放在第一条语句。( √ ) 6.一个类可以实现多个接口,接口可以实现“多重继承”。 ( √ ) 7.实现接口的类不能是抽象类。( √ )

8.使用构造方法只能给实例成员变量赋初值。( √ )

9.Java 语言不允许同时继承一个类并实现一个接口。( × ) 五、分析题

1.分析下面的程序,写出运行结果。 public class Exercises6_1 extends TT{ public void main(String args[]){

Exercises6_1 t = new Exercises6_1(\ }

public Exercises6_1(String s){ super(s);

System.out.println(\ }

public Exercises6_1(){ this(\ } }

class TT{

public TT(){

System.out.println(\ }

public TT(String s){ this();

System.out.println(\ } }

运行结果是:( ) What a pleasure! I am Tom

How do you do?

2.分析下面的程序,写出运行结果。 public class Exercises6_2 { private static int count; private String name; public class Student { private int count; private String name; public void Output(int count) { count++; this.count++; Exercises6_2.count++; Exercises6_2.this.count++; System.out.println(count + \this.count + \ + Exercises6_2.count + \this.count++);

} }

public Student aStu() { return new Student(); }

public static void main(String args[]) { Exercises6_2 g3 = new Exercises6_2(); g3.count = 10; Exercises6_2.Student s1 = g3.aStu(); s1.Output(5); } }

运行结果是:( ) 6 1 12 12

3.分析下面的程序,写出运行结果。 class Exercises6_3 { class Dog {

private String name; private int age; public int step; Dog(String s, int a) { name = s; age = a; step = 0; } public void run(Dog fast) { fast.step++; } }

public static void main(String args[]) { Exercises6_3 a = new Exercises6_3(); Dog d = a.new Dog(\ d.step = 29; d.run(d); System.out.println(\ }

}

运行结果是:( ) 30

4.分析下面的程序,写出运行结果。 class Aclass { void go() { System.out.println(\public class Bclass extends Aclass {

void go() { System.out.println(\public static void main(String args[]) { Aclass a = new Aclass(); Aclass a1 = new Bclass(); a.go(); a1.go(); } }

运行结果是:( ) Aclass Bclass 六、改错题

1.找出下面代码的错误部分,说明错误类型及原因,并更正之。 public class Car {

private String carName; public int mileage;

private static final int TOP_SPEED = 200; abstract void alert();

public static int getTopSpeed() {

联系客服:779662525#qq.com(#替换为@)