如何理解面向对象(POO)?

原创 2016年08月31日 15:02:17

在PHP面试的时候,总会很经常被提问到“如何理解面向对象(POO)?”在此我说出自己答案,希望有不足之处,大家能提出来。

我的思路是:

 回答时从面向对象的三大特征回答,以及面向对象非常重要的一个概念——抽象。
 面向对象的三个特征是:继承封装多态

类的继承性是指一个类通过继承(extends)已有的一个类来成为其子类,子类具有了父类的所有特征(变量、常量、函数方法),同时,子类也可以有新的特性(变量、常量、函数方法)。比如:人类是一个已有的类,男人具有了人类的所有的特性,比如用站立行走,比如思考,比如劳动。同时,男人也有新的特性,比如男人会长胡子。 (注意PHP是单继承的,只能通过接口实现多继承)

类的封装是指类把所有的操作都封闭起来,仅仅提供接口出来让其他人使用,使用的人没有必要懂得类里面的操作,只需要懂得操作接口就可以了。比如开汽车,我们只需要懂得方向盘、刹车、油门等等的使用就可以了,没有必要知道刹车是如何构成的封闭好的操作。同时,封装也提高了程序的可替换性。比如两个汽车公司实现刹车的方式不一样,但是,只要我们学会了使用刹车,那么,开两个汽车公司的车就都没有问题了,我们不需要考虑他们怎样实现刹车这门技术的。

类的多态性是一个对象的某项功能可以处理不同类型的问题,或者一个子类可以将父类的某个功能替换成新的功能,具体到编程的方面来说实现类的多态有override和overload,也就是覆写和重载。

同时面向对象还有一个很重要的概念:抽象。抽象就是一个事物的本质。当然对于本质,不同的角度却会有不同的理解。男人,在和女人一起的时候,它的本质是人。在和所有的生物一起的时候,它的本质是动物。

版权声明:每一篇原创文章都是我的心血,欢迎转载,但请转载前留个评论,感谢您的支持!!!

java入门、java学习:如何理解Java面向对象

首先要说明一点,对象不是java的,事实上他只是一种概念,一种用于解决问题的程序设计的思想方法。要理解对象就必须得要和面向对象结合起来。在面向对象中把某一类事物所共有的属性和行为抽象出来之后就形成了一...
  • javaniuniu
  • javaniuniu
  • 2016年05月23日 10:59
  • 1950

如何理解面向对象思想

我们学习JAVA语言必须要掌握对象和类,这样的话就可以更深层次的理解JAVA这种面向对象的程序开发理念,从而更好更快  地掌握JAVA的变成思想和方法。掌握类和对象是JAVA语言变成的基础。那么,...
  • LK764265808
  • LK764265808
  • 2016年07月08日 11:05
  • 4701

C++面向对象的理解

 ----那23个经典的设计模式和OO半毛钱关系没有,只不过人家用OO来实现罢了。 设计模式就三个准则: 1)中意于组合而不是继承; 2)依赖于接口而不是实现; 3)高内聚,低耦合。 ...
  • u011200925
  • u011200925
  • 2017年02月17日 17:43
  • 824

对面向对象的特点之一的封装进行理解

什么是封装?       封装是面向对象编程的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。       如,用户使...
  • zhouboyu
  • zhouboyu
  • 2014年12月28日 19:58
  • 1467

对Python面向对象的理解

以前本科和研究生都是数学系,从来没接触过编程,更别提面向对象的编程了。以前看书,总是看不懂弄一个类要做什么,这次实习,有许许多多用这些的时候,才体会到面向对象的理论。写点东西,省得忘了。当然知识的更新...
  • tianbwin2995
  • tianbwin2995
  • 2016年03月17日 16:06
  • 473

谈谈我对php中面向对象的理解

转载自:http://www.php.cn/php-weizijiaocheng-372376.html 今天来和大家介绍一下PHP的面向对象。说到面向对象,我不得不提一下面向过程,因为本人在初学时...
  • wang544831183
  • wang544831183
  • 2017年08月17日 12:43
  • 248

深入理解面向过程与面向对象的思想差异与各自特色

一、什么是面向过程 面向过程是一种思维方式。当试图通过面向过程解决问题时,我们的关注点在于问题解决的流程,重在这个过程的控制,需要用大量的模块(模块化的思想源自于硬件,在C语言中是函数)将大问题拆解,...
  • zhangliangzi
  • zhangliangzi
  • 2016年04月22日 16:48
  • 2079

30分钟内快速理解面向对象思想

介绍: 整理这份资料的目的是为了帮助朋友们能够更直观的理解面向对象的编程。让后来者能够少走一些弯路。但其中不免有许多漏洞及错误,也还请前辈提出宝贵的更改意见,毕竟交流会让我们不断的进步。 技术是日...
  • dsa63
  • dsa63
  • 2013年12月10日 12:03
  • 2267

面向对象与面向过程理解

面向对象与面向过程
  • u013412772
  • u013412772
  • 2016年10月31日 20:21
  • 572

深入理解Java中的面向对象

深入理解Java中的面向对象
  • a2011480169
  • a2011480169
  • 2016年08月03日 09:13
  • 5098
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何理解面向对象(POO)?
举报原因:
原因补充:

(最多只允许输入30个字)