接口和抽象类习题-答案 下载本文

(一)选择题

1. 以下哪个接口的定义是正确的?

A.interface B{ void print() { } ; }

B.abstract interface B { void print() ; }

C.abstract interface B extends A1,A2 { abstract void print(){ }; }

D.interface B { void print();}

2. 定义一个接口时,下列哪个关键字用不到?

A.public

B.extends

C.interface

D.class

3. 定义一个接口时,要使用如下哪个关键字?

A.abstract

B.final

C.interface

D.class

4. 在使用interface声明一个接口时,只可以使用哪个修饰符修饰该接口。

A.private

B.protected

C.private或者protected

D.public

5. 下列类头定义中,错误的是 ?

A.public x extends y

B.public class x extends y

C.class x extends y implements y1

D.class x

6. 下列类定义中,不正确的是?

A.class x

B.class x extends y

C.class x implements y1,y2

D.public class x extends X1,X2

7. Java中能实现多重继承功能的方式是?

A.接口

B.同步

C.抽象类

D.父类

8. 下列叙述正确的是?

A.Java中允许多重继承

B.Java一个类只能实现一个接口

C.Java中只能单重继承

D.Java中一个类可以继承多个抽象类

(二)简答题

1) 接口中方法的修饰符都有哪些?属性的修饰符有哪些?

2) 接口的作用是什么?简述接口与类的关系。

3) 请写出下列输出结果。

interface A {

int x = 1;

void showX();

}

interface B {

int y = 2;

void showY();

}

class InterfaceTest implements A, B {

int z = 3;

public void showX() {

System.out.println("x=" + x);

}

public void showY() {

System.out.println("y=" + y);

}

public void showMe() {

System.out.println("z=" + (z + x + y));

}

}

public class Class1 {

public static void main(String[] args) {

InterfaceTest myObject = new InterfaceTest();

myObject.showX();

myObject.showY();

myObject.showMe();

}

}

X=1

Y=2

Z=6

(三)编程题

1) 定义一个有抽象方法display()的超类SuperClass,以及提供不同实现方法的子类SubClassA和SubClassB,并创建一个测试类PolyTester,分别创建SubClassA和SubClassB的对象。调用每个对象的display()。

要求:输出结果为:

display A

display B

2) 创建一个接口,接口的名字叫TestInterface,接口里至少有一个常量String myVar = “Helo Interface”,两个抽象方法write()和read()。