(资料图)
最近学Java,经常会遇到抽象这个词。对于抽象,没学Java之前,真的不理解什么叫抽象,但是学习Java又多次遇到抽象这个概念,Java中讲的很多基本方法,都是抽象而来;因此,自己就不断地去思考,抽象是什么? 抽象是通过分析综合的途径,运用在人脑中再现的质和本质的方法,分为质的抽象和本质的抽象。分析形成质的抽象,综合形成本质的抽象(也叫具体抽象)。作为科学体系出发点和人对事物完整的认识,只能是本质的抽象(具体的抽象)。质的抽象只能是本质的抽象的一个环节,不能作为完整的认识,更不能作为科学体系的出发点。以上是来自百度百科对抽象的定义,我感觉很抽象,不理解它的意思,相信很多人也很难理解以上的定义。那么网上还给出了这样的定义:抽像是从众多的事物中提取出共同的、本质的特征,舍弃其非本质的特征,例如苹果、香蕉、葡萄、西瓜,他们共同的特性就是:他们都是水果。得出水果概念的这一个过程,就是一个抽象的过程。 而我是这样理解抽象的:把很复杂的东西用一个或几个词来给他们一个名字,比如计算机JAVA、C、Windows等等,我们把它们都叫做软件,电脑的电路板、显示器、鼠标、键盘等等,我们把它们叫做硬件,这就叫抽象,给他们一个名字。再把他们进一步抽象,那他们都是工具。使用它们,可以方便我们,提高效率。抽象,就是方便我们理解事物。总之,抽象就是给个名字,让我们方便去理解和记忆某些复杂的东西。 老大以前给我们讲电路的时候,经常提到:分析电路的时候,把自己想象成为电子在电路中走,就容易理解电路了;那么把自己当成电子在电路当中走,这是抽象。自己写的代码给计算机执行,那么我们就可以这样想象,写了几句话(去超市买米和酱油)给你朋友,要他帮你(买米和酱油回来),把复杂的计算机编程过程抽象成为现实生活中的事,这也是抽象。 总的来说,抽象就是方便我们去理解和记忆一些复杂的东西。
他人观点:
苹果、香蕉、葡萄、西瓜 和 水果的关系应该是子类和父类的关系。所有子类共有的属性和方法构成了父类。水果的特征是苹果、香蕉、葡萄、西瓜四者特征中的相同部分。 抽象我的理解是一个框架,抽象类定义了一个框架,其下所有的实现类必须按照这个框架来,而且强制规定实现类必须去实现抽象类的抽象方法。就是实现类必须去填充这些框架。就像接口一样,定死了我这个接口是4pin、6pin、还是8pin的,每个pin脚是干嘛的。你要用就得按照我这个接口定死的框架来。