题目

–来自《Java程序员面试宝典》

  1. 什么是反射机制
  2. package有什么作用
  3. 如何实现C语言的函数指针功能
  4. 面向对象和面向过程有什么区别
  5. 面向对象主要有哪些特征
  6. 面向对象的开发方式有什么优点
  7. 什么是继承
  8. 组合和继承有什么区别
  9. 多态的实现机制是什么
  10. 重载和覆盖有什么区别

题目和答案

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