1.已知有下面类的说明:
public class X5_1_1 extends x{ private float f =10.6f; int i=16; static int si=10;
public static void main(String[] args) { X5_1_1 x=new X5_1_1(); } }
在main()方法中,下面哪条语句的用法是正确的?( ) A.x.f B.this.si C.X5_1_1.i
2.下列程序的运行结果是( )。
public class X5_1_2 extends x{
int ab(){ static int aa=10; aa++; System.out.println(aa); }
public static void main(String[] args) { X5_1_2 x=new X5_1_2(); x.ab(); } }
D.X5_1_1.f
A.10 B.11 C.编译错误 D.运行成功,但不输出
3.下面关于接口的说法中不正确的是( )。 A.接口中所有的方法都是抽象的
B.接口中所有的方法都是public访问权限
C.子接口继承父接口所用的关键字是implements D.接口是Java中的特殊类,包含常量和抽象方法
4.区分类中重载方法的依据是( )。 A.形参列表的类型和顺序 B.不同的形参名称 C.返回值的类型不同 D.访问权限不同
5.子类对象能否直接向其父类赋值?父类对象能否向其子类赋值?( ) A.能,能 B.能,不能 C.不能,能 D.不能,不能
6.Java语言类间的继承关系是( )。 A.单继承 B.多重继承 C.不能继承 D.不一定
7.Java语言接口间的继承关系是( B )。 A.单继承 B.多重继承 C.不能继承 D.不一定
8.一个类实现接口的情况是( )。 A.一次可以实现多个接口 B.一次只能实现一个接口 C.不能实现接口 D.不一定
【解析】Java语言允许一个类一次实现多个接口。 9.定义外部类的类头时,不可用的关键字是( )。 A.public B.final C.protected D.abstract
10.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量?( B )
A.不能引用,必须改名,使它们的名称不相同 B.在成员变量前加this,使用this访问该成员变量 C.在成员变量前加super,使用super访问该成员变量 D.不影响,系统可以自己区分
11.下面说法不正确的是( B )。
A.抽象类既可以做父类,也可以做子类 B.abstract和final能同时修饰一个类
C.抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口 D.声明为final类型的方法不能在其子类中重新定义
编程题
1.编写一个实现方法重载的程序。
重载的含义就是在一个类中定义多个具有相同方法名,不同参数列表的方法。在下面程序中的类中定义三个同名方法area,分别用于求圆、矩形和三角形的面积。三个方法具有不同的参数。
2.编写一个实现方法覆盖的程序。
方法覆盖是指在子类中重新定义了父类中的方法。本程序在Shape类、Circle类、Cylinder类中都定义了area方法,而且Cylinder类继承了Circle类、Circle类继承了Shape类,从而实现了area方法的覆盖。
3.编写一个人类Person,其中包含姓名、性别和年龄的属性,包含构造方法以及显示姓名、性别和年龄的方法。再编写一个学生类Student,它继承Person类,其中包含学号属性,包含构造方法以及显示学号的方法。最后编写一个主类X5_3_5,包含main()方法,在main()方法中定义两个学生s1和s2并给他们赋值,最后显示他们的学号、姓名、性别以及年龄。
【编程分析】本题主要考察类的继承问题。
第一步:定义Person类。
第二步:定义Student类,该类继承Person类。 第三步:定义主类。
4. 课本P41,2.13(选作,以设计为主)

