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

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

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

我的思路是:

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

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

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

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

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

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

相关文章推荐

返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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