您的位置:首页 > 编程语言 > Java开发

JAVA面向对象特性与接口(上)

2013-03-13 17:39 169 查看

一、生活中的抽象

从某个角度来说,抽象其实是无处不在的。要理解这个说法,先来说说什么是抽象。

拿我们日常生活中最常见的电视作个例子:要想在生活中使用一台正常的电视机,大概可以分为3步,各自对应着3个层次。

第一步:工程师设计出完善的图纸(产品设计图)。

第二步:工人师傅们根据图纸,依据(销售)需要制作出N个电视机实物。

第三步:用户们使用自己的电视机。

我们先不着急把这个模型套用到我们的JAVA上,继续来看抽象的问题。大家都知道,现在的电视机生产厂家其实自己不会制造所有的零部件,而是从各个零部件生产商处购买。而很有可能某个“部件”商又是从他的下一级零件供应商处买来零件组装而成的。举个例子,假设长虹电视机厂会从某个主电路板供应商处拿货,而这个电路板供应商会从自己的下一级供应商处获得电容、二级管、主板(裸板)等等元件,而这些供应商肯定也是从别人那里买来原料加工。。。





如上图,这其实就是一个典型的抽象了,对于上一层而言,下一层提供的“成品”是一个“具有一定功能的单元”,而具体如何实现、如何作出这个“单元”,则是下一层的任务,上一层是不用、不能、不须知道的!而这正是“抽象”!

所以我们可以暂时得到“抽象”的两个特点:

1、抽象具有封装性,即实现细节由下一层负责,上一层(使用者)不会、不能得知,也无必要得知,上一层只需知道这个被封装的单元具有什么功能就足够了。

2、抽象具有简易性,由于复杂的设计和实现等细节都由下层完成了,并且很好地“隐藏”了,使得对于上一层而言,“使用”这个单元变成一件很容易的事。

返回电视机的例子,长虹电视机生产商并不需要知道主板是怎么制造出来的。只知道拿到的主板可以实现自己需要的功能就可以,然后使用主板的这个功能,组装出了一台完整的电视机。

由此来看,我们的生活中抽象是无处不在的。大家使用电脑办公,不用有很深的电脑知识,只需要知道电脑有什么功能,来使用它就OK了,这是抽象;老婆让我洗衣服,不需要知道我是怎么洗地,只知道我有完成洗衣服的功能就可,这也绝对是抽象。。。

二、JAVA中如何来抽象

其实说到这里,我们就可以对上号了,java之所以流行,就是因为抽象作得非常好,以便使用者不用太多地对某个类了解就可以去正确地使用它,快速地组装出自己的“电视机”。而封装、继承、多态就是为了抽象的封装性和简易性这个目的。那么怎么来告诉使用者这个单元能实现什么功能呢?当然就是接口的价值所在了。

----细节-----未完待续--------------------
本文出自 “来!一决雌雄!” 博客,请务必保留此出处http://lcqlls.blog.51cto.com/6596441/1153468
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: