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

在本篇关于杭州天丽科技有限公司面试与笔试题目的资源中,主要涉及了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程序的基础。
211 浏览量
2023-05-28 上传
2025-03-06 上传

chenbq02044
- 粉丝: 0
最新资源
- Ruby语言集成Mandrill API的gem开发
- 开源嵌入式qt软键盘SYSZUXpinyin可移植源代码
- Kinect2.0实现高清面部特征精确对齐技术
- React与GitHub Jobs API整合的就业搜索应用
- MATLAB傅里叶变换函数应用实例分析
- 探索鼠标悬停特效的实现与应用
- 工行捷德U盾64位驱动程序安装指南
- Apache与Tomcat整合集群配置教程
- 成为JavaScript英雄:掌握be-the-hero-master技巧
- 深入实践Java编程珠玑:第13章源代码解析
- Proficy Maintenance Gateway软件:实时维护策略助力业务变革
- HTML5图片上传与编辑控件的实现
- RTDS环境下电网STATCOM模型的应用与分析
- 掌握Matlab下偏微分方程的有限元方法解析
- Aop原理与示例程序解读
- projete大语言项目登陆页面设计与实现