1.填空题
(1)接口声明中有两个部分是必需的: 和 。
(2)软件模块之间总是存在着一定的接口,通过接口形成相互调用关系。习惯上,常把调用者称为客户方,被调用者称为服务方。从调用方式上,可以把它们分为3类:
、 和 。
(3)抽象类是一种没有具体对象的概念类,在Java中用 关键字来修饰,它不能被实例化。
(4)Java编译器为所有程序自动引入包 ,因此不必用import语句引入它包含的所有的类,但是若需要使用其他包中的类,必须用import语句引入。
(5)内部类如果被声明为 ,就变成顶层类,这样就不能再使用局部变量;内部类是顶层类时,才可以声明 成员。
2.选择题
(1)关于内部类特性的描述,错误的是 。
A.类名只能在定义的范围内被使用,内部类的名称必须区别于外部类
B.内部类可以定义为abstract
C.内部类可以声明为private或protected
D.内部类不能被继承
(2) 是一种类似消息或事件的机制,服务方在收到某种信息或发生某种事件时,会主动通知客户方,即通过接口调用客户方。
A.同步调用 B.异步调用 C.回调 D.直接调用
(3)下列描述哪一个不是抽象类的条件 。
A.包含有一个或多个抽象方法的声明
B.从直接父类中继承了一个抽象方法
C.继承于一个抽象类,并实现了所有的抽象方法
D.在类的直接超接口中说明或继承了某个抽象方法,但是在这个类中既没有再声明一个方法来实现它,也没有继承一个方法来实现它
(4)为了能使用Java中已提供的类,需要用 语句来引入所需要的类。
A.package B.import C.abstract D.public
(5)下列关于接口的描述,正确的是 。
A.接口具有继承性,子接口可继承父接口的所有属性和方法
B.接口不能继承多个父接口
C.接口可以被实例化
D.抽象类可以使用extends关键字来继承接口
3.问答题
(1)什么是抽象类?
(2)什么是接口?为什么要定义接口?
(3)软件模块的调用方法有哪些?描述它们的调用关系。
4.上机操作题
(1)定义一个有抽象方法display()的超类SuperClass,以及提供不同实现方法的子类SubClassA和SubClassB,并创建一个测试类PolyTester。该测试类有一个具有两个元素的SuperClass对象数组,数组元素分别指定为SubClassA和SubClassB。循环调用每个数组元素的共享方法display( ),看看它们会调用哪个版本的display( )。
(2)设计Shape、Rectangle、Circle和Square类,使它们能利用多态性计算面积和周长,并显示出来。