抽象和封装往往是相互关联的
封装:将实现的细节隐藏(从而无法访问和修改这些细节信息)就是封装。比如现在建立“公司”这个抽象数据类型,而公司的总资金和交易情况被封装在这个类的内部,我们无法直接访问和修改,只能调用公司这个类的查询资金方法,才能查看到公司资金。
过程抽象: 将多个部分整合成一个功能。比如抽象一个"打怪"函数:先拿起武器,再走到怪物面前,最后打它。将这些部分整合,就是抽象出了“打怪”这个函数。这其中用到了抽象也用到了封装,“打怪”这个函数是被抽象出来的,而前面的各部分过程都被封装起来了。
数据抽象:将数据和这些数据操作抽象成新的数据类型。比如现在有“人”这个数据类型,我们再建立“超人”这个数据类型,它拥有人的全部特性,但是他多了一个飞行的函数,我们将“人”这个数据类型和飞行这个函数抽象成了“超人”这个新的数据类型。