作者:初语2265_781 | 来源:互联网 | 2024-10-10 20:32
tips:本文只管用质朴易懂的言语来诠释面向对象的头脑。荒古时代天主起首制造了几个原始类originalclass。比方:动物类Animal,植物类Plant,地形类Topogra
tips:本文只管用质朴易懂的言语来诠释面向对象的头脑。
荒古时代
天主起首制造了几个原始类 original class
。比方:动物类Animal
,植物类Plant
,地形类Topography
,气候类Atmosphere
等作为地球上统统物资的末尾,而本文我们将运用动物类作为例子。
分类而生
在制造了动物类Animal
以后,为它添加了大众属性:mouth:true
和大众要领eat(){},mating(){}
。
以后他决议最先细分,这里我们做的简朴一点,并不依据“界门纲目科属种”的分类依据,而是直接依据人类Human
,猫类Cat
,狗类Dog
等举行细分。
他依据动物类Animal
制造了人类Human
,我们能够说,人类继续自动物类,所以人类这个类中也会存在动物类的大众属性和大众要领。一样的,人类也有本身的大众属性stand:true
和大众要领:farming(){}
。然后,天主依据人类Human
制造了一个人:小明。
小明是一个依据Human
制造出的实例对象,20岁的会弹钢琴的男性程序员,他同时继续了Animal
和Human
类的大众属性和大众要领
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
要领,返回的孩子却不一样呢?这就是多态。当同一个操纵(要领)作用与差别的对象时,会发生差别的实行效果。
以上,面向对象的三个基本特征 封装、继续、多态 都讲完了。一定讲的不够深切,如果有什么明白上不正确的迎接在批评区中斧正,也迎接人人议论。