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

原创 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


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

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

面向对象的三大特征——封装、继承、多态

接触过面向对象的人都知道面向对象有三大特征,分别是封装、继承和多态。这三者分别指的是什么,为什么是这哥仨,使用他们有什么好处,我们来梳理一下。 封装        原则:隐藏对象的属性和实现细节,仅对...
  • haovip123
  • haovip123
  • 2015年02月20日 16:59
  • 3136

java面向对象的四大特性-多态,继承,抽象,封装

1.多态 面向对象的四大特性:封装、继承、多态、抽象。从一定角度来看,封装和继承几乎都是为多态而准备的。是最重要的知识点。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对...
  • basycia
  • basycia
  • 2016年07月07日 12:54
  • 3993

面向对象编程三个特征—封装、继承和多态

面向对象编程有三个特征,即封装、继承和多态     封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。 继承是为了重用父类代码,同时为实现多态性作...
  • dengduo216
  • dengduo216
  • 2013年11月07日 19:51
  • 387

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

封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 继承是为了重用父类代码。两个类若存在IS...
  • go_all_out_in_work
  • go_all_out_in_work
  • 2017年12月18日 19:54
  • 22

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

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

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

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

Python之面向对象编程:封装、继承、多态

Python是面向对象编程的语言,具有封装,继承,多态的特性。
  • FloraCHY
  • FloraCHY
  • 2017年11月27日 19:41
  • 104

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

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

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

封装: 1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。 2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一...
  • u014252871
  • u014252871
  • 2016年11月28日 09:22
  • 2054
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象编程有三个特性:封装,继承,多态。
举报原因:
原因补充:

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