。一、选择题
1. 实现接口的类修饰不可以是( )
A. Public B、abstract C、final D、void
2. 下面程序定义了一个类,关于该类说法正确的是( )
abstract classabstractClass{
……
}
A. 该类能调用new abstractClass(),方法实例化为一个对象
B. 该类不能被继承
C. 该类的方法都不能被重载
D. 以上说法都不对
3. 下列说法正确的是( )
A. java中包的主要作用是实现跨平台功能
B. package语句只能放在import语句后面
C. 包(package)由一组类(class)和界面(interface)组成
D. 可以用#include关键词来标明来自其它包中的类;
4、下列叙述中,错误的是( )
A.父类不能替代子类 B. 子类能够替代父类
C.子类继承父类 D. 父类包含子类
5、关键字( )表明一个对象或变量在初始化后不能修改。
A.extends B.final
C. this D.finalize
6、定义类A如下:(重要)
class A{
int a,b,c;
public void B(intx,int y, int z){ a=x;b=y;c=z;}
}
下面对方法B的重载哪些是正确的( )。
A.public void A(int x1,int y1, int z1){ a=x1;b=y1;c=z1;}
B.public void B(int x1,int y1, intz1){ a=x1;b=y1;c=z1;}
C.public void B(int x,int y){ a=x;b=y;c=0;}
D. public B(int x,inty, int z){ a=x;b=y;c=z;}
7、已知类关系如下:
Class Employee{}
Class Manager extends Employee{}
Class Director extends Employee{}
则下列语句正确的是:( )。
A.Employee e=new Manager();
B.Director d=new Manager();
C.Director d =new Employee ();
D.Manager m=new Director ();
8、接口是Java面向对象的实现机制之一,以下说法正确的是( )。
A.Java支持多重继承,一个类可以实现多个接口
B.Java只支持单重继承,一个类可以实现多个接口
C.Java只支持单重继承,一个类可以实现一个接口
D.Java支持多重继承,但一个类只可以实现一个接口
9、什么样的方法不能被重写 。
A.私有(private)方法 B.最终(final)方法
C.受保护(protected)的方法 D.以上都不对
10、下列有关抽象类与接口的叙述中正确的是哪一个 。
A.抽象类中必须有抽象方法,接口中也必须有抽象方法
B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法
C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法
D.抽象类中的变量定义时必须初始化,而接口中不是
11、从下列程序中你发现了几处错误 。
abstract class A{
abstract void f(){};
public abstract void k();
}
class B extends A{
protected void f(){ }
void k(){
System.out.print("Iam subclass");
}
public static voidmain(String[] args) {
A a=new A();
a.f();
a.k();
}
}
A.1 B.2 C.3 D.4
12、在JAVA 中,下列说法正确的是: 。
A.一个子类可以有多个父类,一个父类也可以有多个子类
B.一个子类可以有多个父类,但一个父类只可以有一个子类
C.一个子类只可以有一个父类,但一个父类可以有多个子类
D.上述说法都不对
13、Father和Son是两个java类,下列哪一选项正确的标识出Father是Son的父类?
A.class Son implements Father
B.class Father implements Son
C.class Father extends Son
D.class Son extendsFather
14、下列有关抽象类与接口的叙述中正确的是哪一个 。
A.抽象类中必须有抽象方法,接口中也必须有抽象方法
B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法
C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法
D.抽象类中的变量定义时必须初始化,而接口中不是
15、关于接口的定义和实现,以下描述正确的是 。
A.接口定义的方法只有定义没有实现
B.接口定义中的变量都必须写明final和static
C.如果一个接口由多个类来实现,则这些类在实现该接口中的方法时采用统一的代码
D.如果一个类实现接口,则必须实现该接口中的所有方法,但方法未必申明为public
16.下列关于继承性的描述中,错误的是( )。
A.一个类可以同时生成多个子类
B.子类继承了父类中除私有的成员以外的其他成员
C.Java支持单重继承和多重继承
D.Java通过接口可使子类使用多个父类的成员
17.下列关于抽象类的描述中,错误的是( )。
A.抽象类是用修饰符abstract说明的
B.抽象类是不可以定义对象的
C.抽象类是不可以有构造方法的
D.抽象类通常要有它的子类
18.设有如下类的定义:
publicclass parent {
intchange() {}
}
classChild extends Parent { }
则,下面哪些方法可加入Child类中?( )
A.public int change(){} B.static int chang(int i){ }
C.private int change(){ } D.abstractint chang(){ }
19.下面叙述中,错误的是( )。
A.子类继承父类 B.子类能替代父类
C.父类包含子类 D.父类不能替代子类
20.下列对多态性的描述中,错误的是( )。
A.Java语言允许方法重载与方法覆盖
B.Java语言允许运算符重载
C.Java语言允许变量覆盖
D.多态性提高了程序的抽象性和简洁性
21.下面关于接口的描述中,错误的是( )。
A.一个类只允许继承一个接口
B.定义接口使用的关键字是interface
C.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现
D.接口实际上是由常量和抽象方法构成的特殊类
22.以下哪个接口的定义是正确的?( )
A)interface B { void print() { } ;}
B) abstract interface B {void print() ;}
C)//A1、A2为已定义的接口
abstract interface B extends A1,A2
{abstract void print(){ };}
D)interface B { void print();}
二、填空题
1. java程序引入接口的概念,是为了弥补只允许类的___单继承_____的缺憾。
2. 我们在java程序中,把关键字__ extends ______加到方法名称的前面,来实现子类调用父类的方法
3. java语言通过接口支持__多重____继承,使类继承具有更灵活的扩展性
4. 在Java程序中,通过类的定义只能实现___单__重继承,但通过 ___接口 __的定义可以实现多重继承关系。
5. __接口____只描述系统所提供的服务,而不包含服务的实现细节。
6. 系统规定用__this()____表示当前类的构造方法,用____super__表示直接父类的构造方法,在构造方法中两者只能选其一,且须放在第一条语句。
7. 若子类和父类在同一个包中,则子类继承父类中的__public____、_ protected ____和__默认_成员,将其作为子类的成员,但不能继承父类的___私有(private)___成员。
8. 若子类和父类不在同一个包中,则子类继承了父类中的__public ____和(protected)成员,将其作为子类的成员,但不能继承父类的__默认___和__私有____成员。
9. ___子类对象___直接赋值给__父类对象____时,子类对象可自动转换为父类对象,__父类对象____赋值给_子类对象_____时,必须将父类对象强制转换为子类对象。
10. Java的多态性主要表现在___方法重载___、_方法覆盖_____和_变量覆盖_____三个方面。
11. 重写后的方法不能比被重写的方法有_更严格_____的访问权限,重写后的方法不能比被重写的方法产生更多的异常。
12. Java语言中,定义子类时,在关键字__extends____后给出父类名。如果没有指出父类,则该类的默认父类为_Object类_____。
13. 实现接口中的抽象方法时,必须使用__完全相同____的方法头,并且还要用__public____修饰符。
14. 接口中定义的数据成员均是_常量数据成员_____,所有成员方法均为___抽象方法___方法,且没有___构造___方法。
15. 如果一个类包含一个或多个abstract方法,则它是一个__抽象____类。
16. Java不直接支持多继承,但可以通过__接口____实现多继承。类的继承具有__传递____性。
17. 没有子类的类称为__最终类____,不能被子类重载的方法称为__最终方法____,不能改变值的量称为常量,又称为_最终变量_____。
18. 一个接口可以通过关键字extends来继承_多个_____其他接口。
19. 接口中只能包含__public、static、final__________类型的成员变量和____ public 、abstract________类型的成员方法。
三、简答题
1.Java中类定义的一般格式是什么?定义类的修饰符有哪些?各自的特点是什么?
答: 类定义格式: class 类名{ }
类的修饰符: public(公共的)、private(私有的)、static(静态的)、final(最终的)、abstract(抽象的)、protected(保护类)
public(公共的)特点:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的
private(私有的)特点:类中成员只可以在定义它的类中被访问
static(静态的)类中成员、方法必须是静态的
final(最终的)特点:被定义成final的类不允许出现子类,不能被覆盖(不应用于动态查询,字段值不允许被修改
abstract(抽象的)特点:类中包括没有实现的方法,不能被实例化。如果是一个abstract方法,则方法体为空,该方法的实现在子类中被定义,并且包含一个abstract方法的类必须是一个abstract类
protected(保护类)特点:类中成员只能在定义它的包中被访问,如果在其他包中被访问,则实现这个方法的类必须是该成员所属类的子类。
2.什么是包?如何创建包?如何引用包?
答: 包:包是一组相关的类和接口的集合
创建包: 由包语句package创建
引用包: 开始部分写出相应的引入(import)语句,指出要引入哪些包的哪些类
3.简述接口定义的一般格式。
答:interface 接口名 {(final)数据类型成员名称=常量;abstract 返回值的数据类型方法名(参数….);}
4.什么是接口?如何定义接口?接口与类有何区别?
答:接口:接口是若干完成某一特定功能的没有方法体的方法(抽象方法)和常量的集合。接口是一种特殊的类
定义:interface 接口名 {(final)数据类型成员名称=常量;abstract 返回值的数据类型方法名(参数….);}
区别: 1、接口是某类行为或功能的抽象是一种规范或标准
2、类是对象的封装
3、一个类只能继承一个类但可实现多个接口
5.一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象方法?
答: 接口实现:class 类名 implements 接口A,接口B{ } 是
6.比较接口与抽象类的异同。
答:异:1、接口用implements来实现(派生子类)
抽象类用extends来派生子类
2、抽象类与一般类一样,只能使用单继承
接口实现了多重继承
同: 都是通过对抽象方法的覆盖来定义方法体。
7.什么是抽象类?什么是抽象方法?各自有什么特点?
答:抽象类:一个类包含一个或多个abstract方法,则它是一个抽象类。(声明方法的存在而不去实现它的类被叫做抽象类)
特点:1、抽象类不可以用new关键字创建对象
2、抽象类中的方法必须由子类复写所有抽象方法后建立子类对象使用
3、抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。
4、抽象类中可以包含构造方法,但是构造方法不能被声明为抽象
5、抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类
6、(abstract不能与private、static、final、native并列修饰同一个方法)
抽象方法:使用abstract修饰的方法是抽象方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现
特点:
1、抽象方法一定在抽象类中
2、只包含方法定义,但没有具体实现的方法,需要其子类或者子类的子类来具体实现
3、抽象方法必须被子类的方法所重写
8.什么是最终类?什么是最终变量?什么是最终方法?
答:没有子类的类称为最终类、不能被子类重载的方法称为最终方法、不能改变值的量称为常量最终变量
http://blog.sina.com.cn/s/blog_6958c5d60100n066.html