面向对象的三大特点是什么,并请予以详细解释

如题所述

计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务就是一个个对象协作的过程。面向对象编程将程序代码组织成一个个对象,让计算机系统能够识别和理解用对象方式编写的程序代码,从而将现实生活中的业务对象映射到计算机系统中。

面向对象的编程语言有封装、继承、抽象和多态四个主要特征。封装是保证软件部件具有优良模块性的基础。封装的目标是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的基本单位,面向对象的封装比传统语言的封装更为清晰、有力。封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义。通常情况下,只要记住让变量和访问这个变量的方法放在一起,将一个类中的成员变量全部定义成私有的,只有这个类自己的方法才可以访问到这些成员变量,这就实现了对象的封装。

例如,人要在黑板上画圆,这一共涉及三个对象:人、黑板、圆。画圆的方法要分配给哪个对象呢?由于画圆需要使用到圆心和半径,圆心和半径显然是圆的属性,如果将它们在类中定义成私有的成员变量,那么,画圆的方法必须分配给圆,它才能访问到圆心和半径这两个属性。人以后只是调用圆的画圆方法,表示给圆发了一个消息而已。这就是面向对象的封装性,即将对象封装成一个高度自治和相对封闭的个体,对象状态由这个对象自己的行为来读取和改变。

抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类。这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。例如,定义一个Person类,只包含姓名和年龄这两个属性,这就是一种抽像。

继承是指在定义和实现一个类的时候,可以在一个已经存在的类的基础上进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。

多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定。多态增强了软件的灵活性和扩展性。例如,下面代码中的UserDao是一个接口,它定义引用变量userDao指向的实例对象由daofactory.getDao()在执行的时候返回,有时候指向的是UserJdbcDao这个实现,有时候指向的是UserHibernateDao这个实现,这样,不用修改源代码,就可以改变userDao指向的具体类实现,从而导致userDao.insertUser()方法调用的具体代码也随之改变。

多态性让程序可以选择多个运行状态,增强了软件的灵活性。例如,人吃饭,你看到的是左手,还是右手?这取决于你看待的角度和当前的目标。
温馨提示:答案为网友推荐,仅供参考
相似回答