杭州天丽科技面试笔试题目解析:提升编译运行理解

4星 · 超过85%的资源 需积分: 9 172 下载量 128 浏览量 更新于2024-09-12 2 收藏 157KB DOC 举报
在本篇关于杭州天丽科技有限公司面试与笔试题目的资源中,主要涉及了Java编程的基础概念和面向对象编程的相关知识点。题目以选择题形式呈现,旨在考察应聘者对类继承、方法调用以及访问修饰符的理解。 首先,题目涉及到的是一个典型的Java类结构,包括一个基类`Base`和一个派生类`Derived`。`Base`类包含一个整型变量`i`初始化为99,以及一个公共方法`amethod()`,用于打印字符串"Base.amethod()"。`Derived`类继承自`Base`,并增加了一个额外的整型变量`i`值为-1,以及重写了父类的`amethod()`方法,使其打印字符串"Derived.amethod()"。 在`main`方法中,关键点在于第40行代码`Base b = new Derived();`,这表明在创建`Derived`类的对象时,虽然`Derived`类有自己的`amethod()`方法,但这里通过基类`Base`的引用`b`调用的是`Base`类的`amethod()`。这体现了Java的多态性,即子类可以覆盖或扩展父类的方法,但在没有明确指定调用哪个版本时,默认调用的是父类的方法。 接着,题目询问编译和运行这段代码会发生什么。根据Java的规则: - 当执行`System.out.println(b.i)`时,由于`b`是`Derived`类型的对象,但在`Base`类中定义了`int i=99`,所以会输出`Derived`类的`i`值-1。 - 然后调用`b.amethod()`,因为`b`是`Base`类型的引用,所以会执行`Base`类的`amethod()`,输出"Base.amethod()"。 因此,正确答案是:A. `Derived.amethod() -1`,这代表会先打印出-1,然后执行基类的方法"Base.amethod()"。 这个题目考察了应聘者对面向对象编程(OOP)概念的理解,包括类的继承、实例化、方法调用和访问修饰符(在这个例子中,`amethod()`被声明为公共,可以被子类访问)。理解这些核心概念对于成功通过杭州天丽科技的面试和笔试至关重要,因为它们是编写高效、可维护的Java程序的基础。