抽象类和接口习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题

1. Java语言的类间的继承关系是

A) 多重的B) 单重的C) 线程的D) 不能继承

2. 以下关于Java语言继承的说法正确的是

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

C)Java中的接口支持多继承D)最终类可以作为其它类的父类

3. 现有两个类A、B,以下描述中表示B继承自A的是

A) class A extends B B) class B implements A

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

4. 下列选项中,用于定义接口的关键字是

A)interface B) implements C) abstract D) class

5. 下列选项中,用于实现接口的关键字是

A)interface B) implements C) abstract D) class

二、填空题

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

2. 属性的隐藏是指子类重新定义从父类继承来的__________。

3. 如果子类中的某个方法的名字、返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。

4. Java 仅支持类间的____重继承。

5. 抽象方法只有方法头,没有________。

6. Java 语言的接口是特殊的类,其中包含______常量和_______方法。

7. 接口中所有属性均为_________、_________和________的。

(public、static、final)

三、程序阅读题

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

public class A

{

String str1=" Hello! \t";

String str2=" How are you? ";

public String toString( )

{ return str1+str2; }

}

public class B extends A

{

String str1="\b\b,Bill.";

public String toString( )

{ return super.str1+str1; }

}

问题:

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

2)类A和类B都定义了str1属性和方法toString( ),这种现象分别称为什么?

3)若a是类A的对象,则a.toString( )的返回值是什么?

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

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++;

}

}

在使用该类时,已使用下面语句生成了该类的对象:

Employee e1,e2;

e1=new Employee("王劲",26,6300);

e2=new Employee("张山",30,3800);

问题:

1),e2.age,e2.wage的值各是什么?

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

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 A: "+"\ta="+a +"\td="+d); }

}

class B extends A

{

float a=3.0f;

String d="Java program.";

int b=4;

void show( )

{

System.out.println("Class A: "+"\ta="+super.a +"\td="+super.d);

super.show( );

System.out.println("Class B: "+"\ta="+a +"\td="+d+"\tb="+b);

}

}

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

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

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

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

class A

{

int x=10;

int getA(){return x;}

}

class B extends A

相关文档
最新文档