面向对象编程有三个特性:封装,继承,多态。

原创 2012年03月27日 16:07:32

        面向对象编程有三个特性:封装,继承,多态。这三个特性从低级到高级描述了面向对象的特征。一种语言只有同时具备这三种特性才能被称为面向对象的语言。VB中也有类,它的类也支持封装和简单的继承,但是它不支持所有的继承语义和多态,因此VB只能被称为基于对象的语言。

一、封装 

         封装是所有抽象数据类型(ADT)的特性,很多刚刚接触面向对象的人认为封装就是就是面向对象。

        将程序按照一定的逻辑分成多个互相协作的部分,并对外界提供稳定的部分(暴露稳定部分),而将改变部分隐藏起来,外界只能通过暴露的部分向这个对象发送操作请求从而享受对象提供的服务,而不必管对象内部是如何运行的,这就是封装。

        理解封装是理解面向对象的第一个步骤,40%的程序员对面向对象的理解仅停留在封装这个层次。


二、继承

         继承也称为派生,继承关系中,被继承的称为基类,从基类继承而得的被称为派生类或者子类。继承是保持对象差异性的同时共享对象相似性的复用。能够被继承的类总是含有并只含有它所抽象的那一类事务的共同特点。继承提供了实现复用,只要从一个类继承,我们就拥有了这个类的所有行为。理解继承是理解面向对象的第二个步骤,50%的程序员对面向对象的理解仅停留在继承这个层次。语义上的“继承”表示“是一种(is-a)”的关系。很多人体会到了继承在代码重用方面的优点,而忽视了继承的语义特征。于是很多滥用继承的情况就发生了,关于这一点我们将会在后边介绍。


三、多态

       多态是“允许用户将父对象设置成为一个或更多的它的子对象相等的技术,赋值后,基类对象就可以根据当前赋值给它的派生类对象的特性以不同的方式运作”(Charlie Calvert)。多态扩大了对象的适应性,改变了对象单一继承的关系。多态是行为的抽象,它使得同名方法可以有不同的响应方式,我们可以通过名字调用某一方法而无需知道哪种实现将被执行,甚至无需知道执行这个实现的对象类型。多态是面向对象编程的核心概念,只有理解了多态,才能明白什么是真正的面向对象,才能真正发挥面向对象的最大能力。不过可惜的是,只有极少数程序员能真正理解多态。






对象之间的关系

对象之间有两种最基本的关系:继承关系,组合关系。

继承关系

继承关系可以分为两种:一种是类对接口的继承,被称为接口继承;另一种是类对类的继承,被称为实现继承。继承关系是一种“泛化/特化”关系,基类代表一般,而派生类代表特殊。

组合关系。

组合是由已有的对象组合而成新对象的行为,组合只是重复运用既有程序的功能,而非重用其形式。组合与继承的不同点在于它表示了整体和部分的关系。比如电脑是由CPU、内存、显示器、硬盘等组成的,这些部件使得电脑有了计算、存储、显示图形的能力,但是不能说电脑是由CPU继承而来的。


参考书籍 :http://www.uml.org.cn/mxdx/200708101.asp


相关文章推荐

面向对象编程三大特性------封装、继承、多态

本文是对面向对象编程三大特性(封装、继承、多态)的一个学习总结。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只...

Java-面向对象编程-三大特性之多态

我们前面已经介绍了面向对象编程的三大特性之二,今天就介绍最后一个特性-多态。 什么叫多态?从字面上理解就是多种形态,即对同一个客体,可以有多种不同的形式。就好像糖一样,有多种口味,你想吃什么口味的就...

C/C++:面向对象编程特性:多态(虚函数表原理)

#include #include using namespace std; //定义两个函数指针类型 typedef void(*pFunc)(void); typedef int(*pSum...
  • jiezhj
  • jiezhj
  • 2014年08月05日 14:54
  • 504

1.面向对象编程思想(封装继承多态接口)

封装: 1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。 2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一...

面向对象编程的封装、继承、多态

面向对象的三个基本特征是:封装、继承、多态。一、封装封装是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。二...
  • will130
  • will130
  • 2015年09月10日 20:11
  • 396

面向对象编程三大特征 封装、继承和多态(二)

JAVA面向对象编程三大特征之一:多态 面向对象编程有三个特征,即封装、继承和多态。 方法的重写、重载与动态连接构成多态性。 要理解多态性,首先要知道什么是“向上转型”。(强制类...

C++:面向对象编程(封装、继承、多态等)

面向对象编程的关键思想是 多态性 。在调用虚函数时,引用和指针的静态类型与动态类型可以不同,这是支持多态性的基石。1. 继承和动态绑定 继承:派生类能够继承基类定义的成员,派生类可以无需改变而使用...

面向对象编程(多态封装)

  • 2010年12月04日 14:38
  • 682KB
  • 下载

Java基础笔记 – 面向对象三个特征 继承、封装、多态及编程细节提示

Java基础笔记 – 面向对象三个特征 继承、封装、多态及编程细节提示     面向对象三个特性:继续(Inheritence)、封装(Encapsulation)、多态(Polymo...

C++ 知识点(四):面向对象编程:多态,虚函数,数据抽象,数据封装,抽象类

C++ 多态多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。下面的实例中,基...
  • Jurbo
  • Jurbo
  • 2016年09月06日 21:24
  • 1082
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象编程有三个特性:封装,继承,多态。
举报原因:
原因补充:

(最多只允许输入30个字)