java面试题基础篇-01-面向对象

面向对象

  • 对比与面向过程,是两种不同的处理问题的角度
  • 面向过程更注重于事情的每一个步骤,面向对象更注重事情有哪些参与者(对象),以及各自都需要些什么。

比如洗衣机洗衣服

  • 面向过程会将任务拆分成一系列的步骤(也就是函数),1-打开洗衣机,2-放衣服,3-放洗衣粉,4-清洗,5-烘干
  • 面向对象会拆出人和洗衣机两个对象:人 : 打开洗衣机 放衣服 放洗衣粉。洗衣机 : 清洗 烘干
  • 面向过程比较直接高效,而面向对象更易于复用、扩展和维护

封装

  • 封装的意义,在于明确标识出允许外部使用的所有成员函数和函数项,内部细节对外部透明调用,外部调用无需修改或者关心内部实现
  • 经典封装场景一:javabean,属性私有,向外提供get/set方法对外访问,属性的赋值和获取只能通过javabean本身决定,而不能由外部胡乱修改、
  • 经典封装场景二:orm框架:操作数据库,我们不需要关心链接是如何建立的,sql是如何执行的,只需要引入mybatis,调用方法即可。

继承

  • 继承基类的方法,并做出自己的改变或扩展。子类共性的方法或者属性直接使用父类的,而不需要自己再定义,只需扩展自己个性化的。

多态

  • 基于对象所属类的不同,外部对同一个方法进行调用,实际执行的逻辑不同
  • 必须包含:继承 方法重写 父类引用指向子类对象
  • 缺点;无法调用子类特有的功能(没有重写父类的方法)
  • 例子: 父类类型 变量名 = new 子类对象
    变量名.方法名,实际上使用的是子类的方法,想换哪一个方法,后面new哪一个儿子就好
  • 好处:更易于程序的维护和扩展,比如我们可以new很多的子类,让他们实现不同的功能

你可能感兴趣的:(JAVA基础(吹毛求疵),java)