文档介绍:交通信息中心Java软件开发工程师笔试题
一、java基础部分
Overload和Override的区别。Overloaded的方法是否可以改变返回值? 答:
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写 Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类 中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数, 我们说该方法被重写(Overriding) „子类的对象使用这个方法时,将调用子类 中的定义,对它而言,父类中的定义如同被“屏蔽” 了。如果在一个类中定义了 多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的 重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
简述抽象类和接口有什么区别。
答:
声明方法的存在而不去实现它的类被叫做抽象类(abstract class ),它用于要 创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类 的情况。不能创建abstract类的实例。然而可以创建一个变量,其类型是一个 抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。 Abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象 类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这 些方法接口( interface )是抽象类的变体。在接口中,所有方法都是抽象的。
多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一 个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似, 除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将 程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对 象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。 通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换, instanceof运算符可以用来决定某对象的类是否实现了接口。
简述 final, finally, finalize 的区别。
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出 新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又 被声明为
final的。将变量或方法声明为f inal,可以保证它们在使用中不被改 变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取, 不可修改。被声明为final的方法也同样只能使用,不能重载。
finally一再异常处理时提供finally块来执行任何清除操作。如果抛出一个异 常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果 有的话)■>
finalize一方法名。Java技术允许使用finalize。方法在垃圾收集器将对象 从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个 对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的 类都继承了它。
请写出下列程序的输出结果。
(1)
public class A{
voi