面向对象三大特点的理解_第1页
面向对象三大特点的理解_第2页
面向对象三大特点的理解_第3页
面向对象三大特点的理解_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一种理解方式:封装:首先,属性可用来描述同一类事物的特征,行为可描述一类事物可做的操作,封装 就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,以方便使用.比 如人这个东东,可用下面的方式封装:人年龄(属性一)身高(属性二)性别(属性三)做事(行为之一)走路(行为之二)说话(行为之三)继承:由于封装,使得有共同特征的一类事物的所有描述信息都被归于一类之中,但我们 知道,这并不是万能的,有些事物有共性,但还存在区别,比如教师,简单封装起来如 下:教师年龄(属性一)身高(属性二)性别(属性三)做事(行为之一)走路(行为之二)说话(行为之三)教书(行为之四)上面对”教师”的封装,与对”人

2、”的封装基本上差不多,只是多了一个特征行为:教书, 教师有与人一样的共性,但我们不能说”人教书”,也就是不能把教书封装到”人”之 中去,教书是教师的特征行为之一.为了省事地封装教师(代码的复用,这只是继 承存在的原因之一),可以让教师去继承人,如:教师extends人教书(行为之三)这样,我们就不用重新定义那些已经被”人”这一个类所封装的那些属性与行为了, 而只需要使用继承的方式,在人的基础上拓展教师专有的行为,即”教书”即可把教 师描述出来;这样的结果,即是教师也同时拥有”人”之中所封装的一切属性与行 为,还拥有自己的特征行为”教书.多态:多态的概念发展出来,是以封装和继承为基础的(其实我觉

3、得抽象也应该算是面 向对象的大特征之一,要封装,抽象是必须的)简单的理解一下多态,比如:人这个类,封装了很多人类共有的特性,教师是人的子类,继承了人的属性与行为,当然教师有自己的特征行为,比如教书 授课;学生是人的子类,继承了人的属性与行为,当然学生有自己的特征行为,比如学习 做作业;现在,当我们需要去描述教师与学生各自的行为的时候,我们可以分开来说”教师 在授课,学生做作业”,但如果我们要站在抽象的角度,也就是从教师与学 生的父类”人”的角度,来同时描述他们各自的行为时,我们怎么描述?人在授课 ?人在做作业?这是不是怪怪的很不合适?不合适的问题就在于,对于行为主体, 我们使用了抽象层次的东东

4、人,而对于行为本身,我们却使用了具体的东东授 课与教书.怎么解决呢?那就需要解决抽象与具体的矛盾问题.既然是站在抽象在角度来描述,那我们把行为抽象一下,不就能同时描述了吗?比 如人在做事(教师授课与学生做作业都可以说成人在做事),这样就解决了抽象 层次与具体层次之间的矛盾.到了这一步,我们可以把两个描述:教师在做事,”学生在做事两者统一为人 在做事,然后,我们可以在教师的做事行为中去调用教师自己的特征行为授课, 在学生的做事行为中去调用学生自己的特征行为做作业,所以,当调用人去做事的时候,如果这个人是教师,那他所做的事实际上就是 教书”,如果这个人是学生,那他所做的事实际上就是做作业.也就是说

5、在这里人是多态的,在不同的形态时,特征行为是不一样的,这里的 人,同时有两种形态,一种是教师形态,一种是学生形态,所对应的特征行为分别 是授课与做作业.完成上述的描述过程,其实就是多态机制的体现.多态,就是站在抽象的层面上去实施一个统一的行为,到个体(具体)的层面上时, 这个统一的行为会因为个体(具体)的形态特征而实施自己的特征行为.多态比起封装与继承来说要复杂很多,上面的描述很简单,不用去死抠多态两个 字,其实只要明白:能站在抽象的角度去描述一件事,而针对这件抽象的事,对于每个个体(具体)又能找到其自身的行为去执行,这就 是多态.第二种理解方式:封装封装机制将数据和代码捆绑到一起,避免了外界的干扰和不确定性。它同 样允许创建对象。简单的说,一个对象就是一个封装了数据和操作这些数 据的代码的逻辑实体。在一个对象内部,某些代码和(或)某些数据可以是私有的,不能被外界 访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程 序中无关的部分意外的改变或错误的使用了对象的私有部分。继承继承是可以让某个类型的对象获得另一个类型的对象的属性的方法。它支 持按级分类的概念。例如,知更鸟属于飞鸟类,也属于鸟类。就像图5 中描绘的那样,这种分类的原则是,每一个子类都具有父类的公共特性。多态多态是OOP的另一个重要概念。多态的意思是事物具有不同形式的能力。 举个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论