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

use*_*904 3 oop principles

   1. Abstraction
   2. Encapsulation
   3. Inheritance 
   4. Polymorphism 
Run Code Online (Sandbox Code Playgroud)

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

Waq*_*med 12

1.抽象

向用户显示他需要的必要的东西,而不是额外的信息(使用公共私人,受保护).当我们需要继承某个类但不实例化该类的对象时,就完成了抽象.

2.封装

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

3.继承

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

4.多态性

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


Hec*_*nez 5

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

  1. 抽象化

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

  2. 封装

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

    每个部门都为人们提供服务,例如"客户服务电话":公共方法.

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

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

    因此,封装将根据谁可以请求它们将一些服务设置为公共,受保护和私有.

  3. 遗产

    记得那些狮子,pinguins和鲑鱼?还记得他们都是动物吗?那么,继承将是,例如,如果动物出生时,他们的"出生日期"被定义为"今天".这种行为将由所有动物类型共享,因此,狮子pinguins和鲑鱼将继承"天生的行为".

  4. 多态性

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