我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合图库 > 多态逻辑 >

如何优雅的回答“什么是面向对象”?

归档日期:05-11       文本归类:多态逻辑      文章编辑:爱尚语录

  发现很多面试官都喜欢问这个问题(我是学生),然而每次觉得自己在这个问题上都答得不尽人意。

  同时,被你 @ 的用户也会收到通知查看全部 19 个回答答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问

  面向对象有个很大的特点是,它同时把数据和行为(对数据的操作)结合起来,和现实世界的运行逻辑更相似。

  打个比方, C 语言对数据和行为的处理其实有点割裂,更加重视了行为。它里面没有叫「对象」的概念,而是个充满动作(函数)的世界。主要都是函数调用函数,从头执行到尾给出结果……这个世界里最主要的东西就是各种动作。

  而 C++ 的「对象」就特别像一个东西,比如说一个人。它的世界是充满物体的世界。主要都是物体和物体(人和物体、人和人等等)之间发生关系,这些关系或者说碰撞导致了最后的结果……这个世界里最主要的东西就是各种物体。

  物体本身是携带数据、携带功能的;物体之间发生关系,才有了世界的运行。这两点,面向对象的程序设计和现实世界更为相像。

  而上述「继承、封装、多态」等特点,便也可由此来模拟现实世界更好地理解了。我随便举点例子……

  多态:人.看(美女) & 人.看(强光) —— 参数类型不一样,执行的也不一样。

  那面向对象的好处也很容易理解。一个是提高可理解性,因为对象按人类认识世界的规律呈现,符合常用思维方式;第二个就是更易于开发和维护,系统的优化很大程度上就等于对对象数据和功能的重新认识,在原有基础上修改一些东西。

  同时,被你 @ 的用户也会收到通知推荐答案答案对人有帮助,有参考价值8答案没帮助,是错误的答案,答非所问

  然后你可以说一说面向对象的优点和缺点,那么一件事情是没有绝对的优点和缺点的,需要一个对比。故此,你得说一说面向过程的编程思想。

  看了lz的问题被踩了,我在社区里看了一下,的确有相关的答案。我的文章算是一个小补充,如果有问题望各位指出。

  每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

本文链接:http://lcvam.com/duotailuoji/344.html