java程序设计试题库 下载本文

《Java语言程序设计基础教程》

25

A、System.out.println(a.i); B、a.method1(); C、A.method1(); D、A.method2()

18、以下关于继承的叙述正确的是( A )。 A、在Java中类只允许单一继承

B、在Java中一个类只能实现一个接口

C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口只允许单一继承

19、以下关于抽象类和接口的说法错误的是(E )

A、 抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。但是一 个类却可以实现多个接口。

B、 在抽象类中可以没有抽象方法

C、 实现抽象类和接口的类必须实现其中的所有方法,除非它也是抽象类。接口中的方 法都不能被实现

D、 接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不 能重新定义,也不能改变其值。

E、 接口中的方法都必须加上public关键字。

4.2填空题

1、 在Java语言中所有的类都是直接或间接地继承_ Object _____类而得到的。

2、在Java中一个父类可以有___多___个子类,一个类只能有__一____个直接父类。 3、Java中不能被实例化、只能被子类继承的是____抽象_____ 类

4、当子类中的变量或方法与父类的变量和方法重名时,子类的变量被______ 隐藏,子类中的方法被______ 重载。此时,指向父类中的变量或方法,则用 ______ super 关键字实现。

5、用来定义一个类指定继承父类的关键字是______ extends ,用来指定接口的继承的关键字是______implements

7、在已有类的基础上构造一个新的类,称为类的______ 继承。

25

26

《Java语言程序设计基础教程》

4.3简答题

1、请举例简要说明JAVA语言的继承机制有何特点?

解答:子类可以使用父类中的成员变量和方法,然后也可以添加自己的属性和方法。如果子类没有构造方法,则编译器首先为子类添加一个无参的构造方法,然后调用父类的默认构造方法,如果子类有构造方法,则先调用父类的默认构造方法,再调用子类的构造方法;如果父类中没有默认构造方法,则出错。(太难)

2、什么是继承?什么是多重继承和单继承?Java采用何种机制来实现多重继承? 解答:继承是面向对象编程的一种特性,是保留原有类功能的前提下拓展或改写部分功能,实现代码复用的方式。单继承就是一个类只可以继承自一个父类,多继承是指一个类可以同时继承多个父类。java中使用的是单继承,也就是一个类有且只能有一个父类,java中可以使用接口实现来实现类似多继承的效果。

3、简述super关键字的意义,以及如何使用。

解答:关键字super表示父类对象。通过在子类中使用super做前缀可以引用被子类隐藏的父类变量或被子类重写的父类方法。super用来引用当前对象的父类,虽然构造方法不能够继承,但利用super关键字,子类构造方法中也可以调用父类的构造方法。1)操作被隐藏的变量和方法;2)使用super调用父类的构造方法。

4、抽象类是什么,抽象方法是什么。

解答:抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。

抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的方法仍然是abstract的。

4、接口是什么,以及它的用处体现在哪几个方面。

解答:接口是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。它的用处体现在下面几个方面: 1)通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。2)通过接口指明多个类需要实现的方法。 3)通过接口了解对象的交互界面,而无需了解对象所对应的类。

5、什么是接口,什么是抽象类,接口和抽象类的区别? 解答:

抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接

26

《Java语言程序设计基础教程》

27

创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。

接口是抽象类的一种特殊形式,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。

抽象层次不同,抽象类是对类的抽象,而接口是对行为的抽象。

跨域层次不同,抽象类的跨域是具有相似的类,接口可以跨域不同的类。

设计层次不同,抽象类是自底向上抽象而来,子类抽象父类接口是自顶向下设计的,无需知道子类。

6、接口的用处体现哪几个方面? 解答:

通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。 通过接口指明多个类需要实现的方法。

通过接口了解对象的交互界面,而无需了解对象所对应的类。

7、接口与实现类(具体类)关系: 解答:

多个无关的类可以实现同一个接口。 一个类可以实现多个无关的接口。

与继承关系类似,接口与实现类之间存在多态性。

14、子类与父类的继承关系中,什么是属性隐藏?什么是方法重写?

解答:隐藏是指当父类和子类有相同名字的属性的时候,父类的同名变量形式上不可见了。但是实际还是存在的。

重写是针对方法的,通常是父类的方法在子类中重新写过。当执行子类的实例得时候,实际运行的是子类的方法。在子类里面可以通过super.method()来显式的访问。

15、子类会继承父类的所有方法和属性么?

解答:在同一个包中除private声明外的方法都可以继承。不在同一个包中,只继承protected和public声明的方法。(太难了)

16、Java中的方法重写(Overriding)和方法重载(Overloading)分别是什么?

解答:Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法重写是说子类重新定义了父类的方法。子类中重写的方法和父类中被重写的方法必须有相同的方法名,参数列表和返回类型,只是方法体不同。

27

28

《Java语言程序设计基础教程》

4.4综合题

1、写出一个类People,并由该类做基类派生出子类Employee和Teacher。其中People 类具有name、age两个保护成员变量,分别为String类型、整型,且具有公有的getAge成员函数,用于返回age变量的值。Employee类具有保护成员变量empno为String类型,Teacher类有teano为String类型和zc成员变量为String类型。

解答:

//People类:

public abstract class People { protected String name; protected int age; public int getAge() { return age; } }

//Employee类:

public class Employee extends People { protected String empno; }

//Teacher类:

public class Teacher extends People { protected String teano; protected String zc; }

2、定义一个新的类Student类,继承Person类。要求: 1)增加“school”属性为String类型。

2)重载Student类的构造方法,Student(String n,String l,String school)。 3)重写Person类的info()方法,增加school信息。 class Person{ private String name; private String location; Person(String name, String location){ this.name =name; this.location =location ; }

28