在学完Java的面向对象之后,总结所学的知识的时候,觉得用概念来解释实在太抽象,然后想通过大家喜闻乐见的举例的方法来试着理解它一遍,这里写出来,请大家看看我理解得对不对,另外也加深一遍自己的理解(能讲出来才是真的理解)。
假设这里有4个家族–赵钱孙李,一共40人,每家10人
1.封装就是把他们分封成4家人,当我们想要找李四时,可以直接到李家的地盘去找他,这是我们只需要在李家的10个人里面去寻找。如果没有把他们分成4家(也就是没有封装),那我们要找李四就要在40人的人堆里去寻找。
所以,封装就是把有一个姓(有相关的属性方法)的叫成一家人(类)。
2.继承的话是这样。假设李家里面有三个家庭和一个爷爷李一,把他們分成四個類,每个家庭3个人,每个人都是李一的子孙,李一会种菜,那他们的儿子可以很轻松继承他爸的技术,只需要很简单的写李二是李一儿子(继承父类),那么大家就都默认认可他会种菜,就不需要再去学习种菜(父类有的代码如果不改写的话,子类可以不用再写)。其它的人同理可以继承爷爷李一。
3.多态的话有点绕,同二。假设李家的三个家庭里都是爸爸、妈妈、儿子,他们都已经继承了爷爷的技术,都会种菜了。有一天,赵家的人需要请李家的人去种菜,想要叫最年轻的爸爸李六来帮忙。于是他们这是就有三种法子通知李六来种菜。
第一他们直接通知李六,让他来种菜(直接引用对象的方法);
第二他们可以通知李家的掌家人李一爷爷,因为李一是他父亲,李六继承过李一爷爷,所以李一爷爷有权利让他去干活(父类引用);
第三是赵家只通知李家来种,这时通知先来到李一爷爷这里,爷爷想让大家轻松点,想要自己去干,但李六知道了,自愿担起李一爷爷的重任,于是他把爷爷的责任拿过来由他去种菜(把李六对象赋给了李一,引用李一就会由李六执行)。
好,这里主要是具象化他们的概念,所以没有提到细节如访问修饰符、接口、抽象类等等,这里只说对概念的理解,请大家一起交流。