先解释一下抽象和封装:
抽象: 抽象就是忽略一个问题中与当前目标无关的那些方面,以便更充分的注意与当前目标有关的部分,抽象不打算了解问题的全部,而是只选择其中的一个部分,抽象包括两个方面:过程抽象和数据抽象。
封装:就是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
再做一些说明:
举例来说明一下,比如相思鸟和乌鸦,我们在抽象时,我们忽略那些比如嘴不一样,而我们只在意它们都是有嘴的:mouth;我们忽略它们羽毛颜色的不一样,而只在意它们的羽毛是有颜色的:color;然后我们抽象出嘴、羽毛颜色等特点。
然后我们通过抽象出的这些特点,将它们封装成鸟类 Bird,这就是封装。
在使用时,我们会通过封装出的 Bird 类来给鸟类的属性赋值,比如 bird.mouth=尖嘴,bird.mouth=圆嘴,这样我们又还原出鸟类的不同的特点,这正印证了题主的那句话“**_抽象让我们忽略细节,在不同的层次上处理细节,封装则是填补了抽象留下的空白_**”。
作者:80 岁未成年
链接:https://www.zhihu.com/question/20266563/answer/63441258
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于