解释OOP原则的最佳方法是什么?

时间:2014-04-17 10:10:44

标签: oop principles

   1. Abstraction
   2. Encapsulation
   3. Inheritance 
   4. Polymorphism 

如何最好地解释这些概念,例如,在面试中?

3 个答案:

答案 0 :(得分:9)

<强> 1。抽象

  

只向用户展示他需要的东西,而不是额外的东西   信息(使用公共私人,受保护)。抽象是在完成的时候完成的   我们需要继承某些类但不实例化   该类的对象。

<强> 2。封装

  

将所有相关事物组合在一起。即封装是   在单个单元中包装/绑定数据和成员函数。在   简单,抽象是隐藏实现和封装   隐藏数据。

第3。继承

  

如果已存在某些东西,我为什么要重新创建它(与重新发明轮子相同)。使用继承继承该类的所有内容   进入你的班级。继承使您可以创建重用,扩展和修改在其他类中定义的行为的新类

<强> 4。多态性

  

当物体在不同情况下表现出不同的行为时。   以简单的方式,当消息可以以不同的方式/形式处理时。

答案 1 :(得分:5)

与非技术人员交谈时,我使用类比

  1. <强>抽象

    这就像编写Lion,Pinguin和Salmon的共享行为一样。所有这些都是不同的,但它们有一些共同特征:它们都是吃,呼吸,死亡等。 这就是为什么抽象很重要,因为它允许我作为开发人员编写像&#34; Animal&#34;对象,定义了它们的共同行为。

  2. <强>封装

    想象一下拥有多个部门的大公司。

    每个部门都为人们提供服务,例如&#34;客户服务电话&#34; 公共方法

    然后,各部门相互交流,请求信息,委派任务:受保护的方法

    最后,在每个部门内部管理一些职责,例如,向员工付款:私人方法

    因此,封装将把一些服务设置为public,protected和private,具体取决于谁可以请求它们。

  3. <强>继承

    还记得那些狮子,pinguins和鲑鱼吗?还记得他们都是动物吗? 那么,遗传就是,例如,当一只动物出生时,它们的出生日期是#34;定义为&#34;今天&#34;。这种行为将由所有动物类型共享,因此,狮子pinguins和鲑鱼将继承出生行为&#34;

  4. <强>多态性

    这个与继承非常相似,是技术差异的主要区别,因此我甚至不会尝试向非技术人员解释它。

答案 2 :(得分:2)

汽车蓝图 - &gt;类

car - &gt;对象

轮 - &gt;构件

警车蓝图 - &gt;儿童班

汽车发动机 - &gt;封装(你的汽车对象的用户不需要与它交互,更好地隐藏它)

快速从a到b - &gt;多态方法,可以在普通汽车或警车上调用,但不会做同样的事情(警车会打开警报器并烧灯)

需要描述如何使用这些汽车?创建IVehicle,这是他们的界面。在现实世界中不存在IVehicle这样的东西,但无论如何它立即描述实现它的东西是有用的。 - &GT;抽象。

等...