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

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

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

我的思路是:

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

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

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

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

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

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

相关文章推荐

一个前端与后端分离的架构实例

最近在为新系统的架构进行选型,觉得前后分离是个选择的方向,当然也还有很多待解决问题。这篇很有帮助,原文如下: 看了《系统架构:Web应用架构的新趋势---前端和后端分离的一点想法》 这篇文章...
  • ETZRP
  • ETZRP
  • 2015年08月11日 13:37
  • 2723

一名编程员毕业一年工作两年的感悟

内心深处的呐喊,来自一名程序猿

深入理解面向对象

  • 2013年08月14日 18:13
  • 72KB
  • 下载

JavaScript面向对象及原型的理解及笔记整理【一】

面向对象的语言有一个类的概念,通过类可以创建任意多个具有相同属性和方法的对象。即三大特点:继承,多态,封装。ECMAScript没有类的概念,因此它的对象也与基于类的语言中的对象有所不同,可以理解为J...

理解面向对象的listView

  • 2017年08月01日 00:15
  • 24.85MB
  • 下载

JavaScript之全面理解面向对象的JS

今天看到一篇文章写得很好,对于像博主这种js一般级别的菜鸟很有帮助,博主秉着“好文要转”的原则收藏了这篇文章,简单排了下版,分享给大家,本文转自原文:http://www.ibm.com/develo...

一个理解面向对象很好的例子

  • 2008年10月22日 15:58
  • 344KB
  • 下载

如何理解面向对象思想

  • 2010年01月14日 23:30
  • 19KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何理解面向对象(POO)?
举报原因:
原因补充:

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