题目
–来自《Java程序员面试宝典》
- 什么是反射机制
- package有什么作用
- 如何实现C语言的函数指针功能
- 面向对象和面向过程有什么区别
- 面向对象主要有哪些特征
- 面向对象的开发方式有什么优点
- 什么是继承
- 组合和继承有什么区别
- 多态的实现机制是什么
- 重载和覆盖有什么区别
题目和答案
- 什么是反射机制
答:反射是Java提供的一种可以动态的获取运行中对象的状态及属性的机制。这种机制可以在程序运行时动态的获取对象的当前的类,成员,方法,并且可以动态的创建类的对象。 - package有什么作用
答:通过package可以将类进行一个归类划分,提高层次结构,使开发更方便。 - 如何实现类似C语言的函数指针功能
答:C语言可以通过指针的不同来对回调函数的参数进行自定义,而Java采用接口多种实现来实现相应功能 - 面向对象与面向过程的不同
答:面相对象是将对象抽象成整体,提高代码的复用,并且模块化。面向过程对具体问题一步一步的分析。面向对象因为需要实例化一些对象所以性能没有面向过程高。 - 面向对象的特征
答:抽象,继承,多态,封装。(1)抽象:忽略当前主题与目标无关属性,充分注意与目标有关的方面;(2)继承:为了提高类的重用性,使用一个子类对父类的方法进行重用,并可以对已有的父类进行一个完善和拓展。(3)多态是不同类的对象对同一消息作出响应。(4)封装是将客观事物抽象成类,每个类对自身数据的保护和权限管理。 - 面向对象的开发方式有什么优点
答:(1)较高开发效率 ; (2)保证软件的鲁棒性; (3)可维护性 - 什么是继承
答:继承就是为了提高代码的可重用性而设计的。子类通过继承父类达到对父类的一些成员及方法的重用。继承使用关键字 extends 实现。Java不支持多继承。子类可以重写父类的public,protected 方法。子类与父类有同名的变量或者方法会进行覆盖。 - 组合和继承
答:组合是has-a的关系,继承是is-a的关系,比如 鸡和鸡毛,组合关系。鸡和动物是 继承关系。能用组合尽量使用组合关系。 - 多态的实现机制
答:(1)通过方法的重载,一个房子可以有多个入口。(2) 覆盖。子类同名方法对父类方法的覆盖。爸爸的卡车和儿子的小轿车。 - 重载和覆盖的区别
答:重载是同名方法对不同参数的不同体现,覆盖是不同类的不同表现。重载比如这是一个车辆加工厂,将不同的车放入会进行不同的处理。而覆盖表示爸爸的加工厂加工的是小轿车,儿子的与爸爸同名加工厂加工的是大卡车。