宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒

面向对象程序设计特性

上一篇 / 下一篇  2007-09-26 10:56:28

面向对象程序设计语言包含信息隐藏&数据抽象&动态联
编和继承四个特性$信息隐藏通过减少构件间依赖程度提高软
件系统可靠性和可修改性$使构件内的属性和方法$仅在完成
系统功能而必须在构件间交换时才能进行传递%数据抽象定义
数据类型和施加于该类型对象上的操作$并限定了对象的值只
能通过使用这些操作修改和观察%动态联编使程序员向一个对
象发送消息而不涉及系统如何实现操作时可继续执行%继承是
在类&子类及对象间自动共享数据和方法的机制$它是面向对
象程序设计核心!
: 继承图
继承是面向对象程序设计语言的主要机制$它允许从父类
继承相同代码! 继承可分为单继承&多继承和重复继承$这些继
承可表示为一个有向无环图./"0$1#$其中0 是类集$继承边
集1;<",$2#32 继承, 且,$2!0=$分为树边和向前边两种继承
边$树边在图中父类连接子类%向前边由祖先连接子孙$为避免
无休止循环$子孙连接祖先!
:$% 单继承
单继承是每个类至多有一个父类! 它是一种树形结构$因
此不会产生二义性问题!
:$! 多继承
定义%’多继承图.4(56"0$1#是一个有向图$其中0 是类
集$1 是继承边集$且至少存在一个结点7!0$其入度不小于
!! 多继承可从几个类中继承产生新类$从而新类包含多个父类
的各种属性$因此有利于代码复用! 但多继承易产生软件设计
和执行的错误$增加软件测试的难度$因此应尽量避免使用多
继承!
:$: 重复继承
定义!’重复继承图.8$*6"9$:#由多继承图.4(56"0$1#和
相同父结点7!9 组成$其中0"9 且1":! 因此一个类可多继
承其它类且被继承的类有一个相同的父类! 在重复继承图中$
至少包含三个结点且包含封闭区域!
单继承&多继承和重复继承如图% 所示!
:$> 单元重复继承
定义:’若重复继承图.8$*6"9$:#的其结点数与边数相等$
则. 称为单元重复继承!
重复继承有如下结论’
"%#若继承图. 包含重复继承$则. 可分解为?5@ 集$即’
.%#.!;.$"0%%0!;0#%"1%%1!;1#
"!#设是继承图.6"0$1#的邻接矩阵$则!8 的元素+$-
是从7+
到7-
长度为8 的不同路径数$其中7+$7!!0%若. 是重
复继承图$则存在长度不小于! 的继承路径!


TAG:

 

评分:0

我来说两句

Open Toolbar