假如天主是程序员,他是怎样制造世界上一切动物的?

tips:本文只管用质朴易懂的言语来诠释面向对象的头脑。

荒古时代

天主起首制造了几个原始类 original class。比方:动物类Animal,植物类Plant,地形类Topography,气候类Atmosphere等作为地球上统统物资的末尾,而本文我们将运用动物类作为例子。

分类而生

在制造了动物类Animal以后,为它添加了大众属性mouth:true大众要领eat(){},mating(){}

以后他决议最先细分,这里我们做的简朴一点,并不依据“界门纲目科属种”的分类依据,而是直接依据人类Human,猫类Cat,狗类Dog 等举行细分。

他依据动物类Animal制造了人类Human,我们能够说,人类继续自动物类,所以人类这个类中也会存在动物类的大众属性和大众要领。一样的,人类也有本身的大众属性stand:true大众要领farming(){} 。然后,天主依据人类Human制造了一个人:小明。

小明是一个依据Human制造出的实例对象,20岁的会弹钢琴的男性程序员,他同时继续AnimalHuman类的大众属性大众要领

mouth:true,
stand:true,
farming(something){
    ...
},
eat(something){
    ...
},
mating(someone){
    return xxx
}

而他的私有属性occupation:programmer私有要领playingPiano(){...},小明把他的个人状况都藏起来【封装】,只要他通知他人本身的状况,他人才会晓得,而且他人不晓得他会弹什么曲子的,只能说“小明你弹个钢琴给我听一下”。挪用
小明.playingPiano()封装以后只要对外供应接口后才能够运用

有一天,小明认识了一个女生小白,小白是一个21岁的会唱歌的客服,私有属性customService私有要领singing(){...}。厥后他们谈恋爱而且完婚了,有一天小明挪用了本身的要领mating,并将小白作为参数传入,随后return出了一个孩子:小黑。然则小黑并没有继续小明的playingPiano和小红的singing,反倒是有了本身的私有属性tellingStory。但唯一和小明另有小红一样的是,他继续了动物类Animal和人类Human大众属性大众要领

与此同时,另一对夫妻小华和小花,他们也挪用了本身的mating,然则 return 的是另一个与小黑差别的孩子——小月,她的私有属性与她的父母都差别,是playingBasketball,但一样的,她也继续了动物类Animal和人类Human大众属性大众要领

为何都挪用了mating要领,返回的孩子却不一样呢?这就是多态。当同一个操纵(要领)作用与差别的对象时,会发生差别的实行效果。

以上,面向对象的三个基本特征 封装、继续、多态 都讲完了。一定讲的不够深切,如果有什么明白上不正确的迎接在批评区中斧正,也迎接人人议论。

    原文作者:秦锋
    原文地址: https://segmentfault.com/a/1190000015922190
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞