JAVA复习题(继承)

2020-04-03 13:14

类的继承习题

一、选择题

1. Java语言的类间的继承关系是( B )。

A) 多重的 B) 单重的 C) 线程的 D) 不能继承 2. 以下关于Java语言继承的说法正确的是( C )。

A)Java中的类可以有多个直接父类 B)抽象类不能有子类

C)Java中的接口支持多继承 D)最终类可以作为其它类的父类 3. 现有两个类A、B,以下描述中表示B继承自A的是(D)。

A) class A extends B B) class B implements A C) class A implements B D) class B extends A 4. 下列选项中,用于定义接口的关键字是( A)。

A)interface B) implements C) abstract D) class 5. 下列选项中,用于实现接口的关键字是( B)。

A)interface B) implements C) abstract D) class 6. Java语言的类间的继承的关键字是( B )。

A) implements B) extends C) class D) public 7. 以下关于Java语言继承的说法错误的是( A )。

A)Java中的类可以有多个直接父类 B)抽象类可以有子类

C)Java中的接口支持多继承 D)最终类不可以作为其它类的父类 8. 现有两个类M、N,以下描述中表示N继承自M的是(D)。

A) class M extends N B) class N implements M C) class M implements N D) class N extends M

9. 现有类A和接口B,以下描述中表示类A实现接口B的语句是(A)。 A) class A implements B B) class B implements A C) class A extends B D) class B extends A 10. 下列选项中,定义抽象类的关键字是( C)。

A)interface B) implements C) abstract D) class 11. 下列选项中,定义最终类的关键字是(D)。

A)interface B) implements C) abstract D) final 12. 下列选项中,哪个是java语言所有类的父类(C) A)String B) Vector C) Object D) KeyEvent

13. java语言中,用于判断某个对象是否是某个类的实例的运算符是(A) A)instanceof B) + C) isinstance D) &&

14. 下列选项中,表示数据或方法可以被同一包中的任何类或它的子类访问,即使子类在不同的包中也可以的修饰符是(B)

A)public B) protected C) private D) final

15. 下列选项中,表示数据或方法只能被本类访问的修饰符是(C) A)public B) protected C) private D) final

16. 下列选项中,接口中方法的默认可见性修饰符是(A) A)public B) protected C) private D) final 17. 下列选项中,表示终极方法的修饰符是:(B) A)interface B) final C) abstract D) implements 18. 下列选项中,定义接口MyInterface的语句正确的是:(A) A)interface MyInterface{ } B) implements MyInterface { } C) class MyInterface{ } D) implements interface My{ }

19. 如果子类中的方法mymethod()覆盖了父类中的方法mymethod(),假设父类方法头部定义如下:void mymethod(int a),则子类方法的定义不合法的是:(C)

A) public void mymethod(int a) B) protected void mymethod(int a) C) private void mymethod(int a) D) void mymethod(int a)

二、填空题

1. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量。(隐藏)

2. 属性的隐藏是指子类重新定义从父类继承来的__________。(同名变量或属性)

1

3. 如果子类中的某个方法的名字、返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。(参数列表) 4. Java 仅支持类间的____重继承。(单重)

5. 抽象方法只有方法头,没有________。 (方法体) 6. Java 语言的接口是特殊的类,其中包含______常量和_______方法。(static(静态) ; abstract(抽象)) 7. 接口中所有属性均为_________、_________和________的。 (public、static、final)

8. 如果接口中定义了一个方法methodA(),一个属性attA,那么一个类ClassA要实现这个接口的话,就必须实现其中的_______方法。(methodA())

9.一个类如果实现一个接口,那么它就必须实现接口中定义的所有方法,否则该类就必须定义成________的。(抽象的)

10. 如果子类中的某个方法的名字、__________和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。(返回值类型)

11. Java 仅支持类间的单重继承,接口可以弥补这个缺陷,支持_____重继承(多重) 12. 在方法头用abstract修饰符进行修饰的方法叫做________方法。(抽象) 13.Java语言中用于表示类间继承的关键字是___________。(extends) 14. 接口中所有方法均为________和________的。 (public、abstract)

15. Java语言中,表示一个类不能再被继承的关键字是________。(final)

16. Java语言中,表示一个类A继承自父类B,并实现接口C的语句是_________________。 (class A extends B implements C)。

17. 如果子类中的方法compute()覆盖了父类中的方法compute(),假设父类的compute()方法头部有可见性修饰符public,则methodS()的可见性修饰符必须是__________。(public) 三、程序阅读题

1.现有类说明如下,请回答问题: public class A {

String str1=\

String str2=\ are you? \ public String toString( ) { return str1+str2; } }

public class B extends A {

String str1=\,Bill.\ public String toString( )

{ return super.str1+str1; } }

问题:

1)类A和类B是什么关系?(继承关系)

2)类A和类B都定义了str1属性和方法toString( ), 这种现象分别称为什么?(属性的隐藏;方法的覆盖) 3)若a是类A的对象,则a.toString( )的返回值是什么? (Hello! How are you?)

4)若b是类B的对象,则b.toString( )的返回值是什么?(Hello,Bill.)

2.现有一个类定义如下,请回答问题: class Employee {

String name; int age;

double wage; static int No=0;

Employee(String a1,int a2,double a3) {

name=a1; age=a2; wage=a3; No++;

2

} }

在使用该类时,已使用下面语句生成了该类的对象: Employee e1,e2; e1=new Employee(\王劲\ e2=new Employee(\张山\问题:

1)e2.name,e2.age,e2.wage的值各是什么?(张山;30;3800.0)

2)生成对象e1、e2后,e1.No值为多少?能否通过类名做前缀引用属性No?(2; 能)

3.阅读程序,回答问题。 public class InheritTest1 {

public static void main (String[] args) {

A aa; B bb;

aa=new A( ); bb=new B( ); aa.show( ); bb.show(); } }

class A {

int a=1;

double d=2.0; void show( )

{ System.out.println(\ } }

class B extends A {

float a=3.0f;

String d=\ int b=4;

void show( ) {

System.out.println(\ super.show( );

System.out.println(\ } }

问题:1)这是哪一类java程序?(java应用程序)

2)类A和类B是什么关系?(类B是类A的子类)

3)按程序输出的格式写出程序运行后的结果.

(程序运行结果如下:

Class A: a=1 d=2.0 Class A: a=1 d=2.0 Class A: a=1 d=2.0

Class B: a=3.0 d=Java program. b=4 )

4.现有类说明如下,请回答问题: class A {

int x=10;

int getA(){return x;} }

class B extends A {

int x=100;

3

int getB(){return x;} }

问题:1)类B是否能继承类A的属性x?(能)

2)若b是类B的对象,则b.getB()的返回值是什么?(100) 3)若b是类B的对象,则b.getA()的返回值是什么?(10)

4)类A和类B都定义了x属性,这种现象称为什么? (属性的隐藏)

5.有如下源程序,请回答问题: class A { String s=\ } class B extends A { String s=\ } public class TypeConvert { public static void main(String args[]) { B b1,b2=new B(); A a1,a2; a1=(A)b2; a2=b2; System.out.println(a1.s); System.out.println(a2.s); b1=(B)a1; System.out.println(b1.s); System.out.println(b2.s); } }

问题: 该程序的四行输出各是什么? (class A class A class B class B)

6.现有类说明如下,请回答问题: public class A {

int x=888;

String str=\ public String toString() { return str+x; } }

public class B extends A {

String x=\

public String toString()

{ return str+x+\ } }

问题:1)类A和类B是什么关系?(类B是类A的子类) 2)类A和类B都定义了x属性和方法toString(),这种现象分别称为什么?(属性的隐藏和方法的覆盖) 3)若a是类A的对象,则a.toString( )的返回值是什么?(I like: 888)

4)若b是类B的对象,则b.toString( )的返回值是什么? (I like: java and 888)

7.运行类C的输出结果是什么? class A { public A() { System.out.println(“The default constructor of A is invoked”);

4

}

}

class B extends A { public B() { } }

public class C { public static void main(String[] args) { B b = new B(); } }

8.阅读下列程序写出输出结果: class A { String s=\ void show() {

System.out.println(s);

}

} class B extends A { String s=\ void show() {

System.out.println(s);

} } public class TypeConvert { public static void main(String args[]) { B b1;

B b2=new B();

A a1,a2; a1=(A)b2; a2=b2; System.out.println(a1.s); a1.show(); System.out.println(a2.s); a2.show(); b1=(B)a1; System.out.println(b1.s); b1.show(); System.out.println(b2.s); b2.show(); } } 答案: class A class B class A class B class B class B class B class B

5


JAVA复习题(继承).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:钢的热处理

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: