什么是面向对象?谈谈你的理解?_fover_night的博客-爱代码爱编程
什么是面向对象?
面向对象和面向过程是两种不同处理问题的角度,面向过程更注重事情的每一个步骤,而面向对象则是更注重参与一件事情里有多少个对象,并且分别需要做什么。
举个例子,比如说我要用热水壶煮茶:
面向过程时——打开水壶——给水壶装水——放入茶叶——加热/煮——水沸腾进入保温——倒出;
而面对象则是:人——打开水壶、装水、放入茶叶、倒出
水壶——进行加热、沸腾后自动检测并进入保温
由此可见面向过程比较直接高效,而面向对象则更易于复用、扩展和维护
面向过程的三大特性: 封装 | 继承 | 多态
1.封装
封装的意义就是明确地标识出允许外界使用的所有成员函数以及数据,内部细节对外部调用透明,而外部调用也无需修改和关心内部实现。同时如果说一个接口封装给外部使用,但是又不想其中个别方法不被调用,则还可以使用private修饰词进行私有化。
典型例子,1.javabean的属性私有,提供getset对外访问,因为属性的复制或者获取逻辑只能有javabean本身决定,而不能由外部胡乱修改。2.框架,比如说使用Mybatis框架,我们只需要知道如何调用其方法即可,不用关心数据库是怎样与服务器建立连接、sql如何执行等。
2.继承
继承基类的方法,并做出自己的改变或者拓展;子类共性的方法或者属性直接使用父类的即可,不用自己额外再定义,然后子类只需要专注于自身个性化的改变和拓展
3.多态
有三个必要条件:继承、方法重写、父类引用指向子类对象
父类类型 变量名 = new 子类对象;
变量名.方法名();
注:无法调用子类特有的功能
方法重写,即子类重写父类的方法