返回介绍

10.3 对象是 属性包:方法与事件可以视为属性的特例

发布于 12-15 23:01 字数 1626 浏览 0 评论 0 收藏 0

将对象作为“一种数据”来观察,则所谓 PME 中的方法(M)与事件(E)就可以视为是“面向对象逻辑需求的”特殊属性(P)。其中,方法是对象创建之前即可确知的自有逻辑,事件则是在对象创建时仍有未定因素的外部逻辑,这二者本质上也是对象的性质。如图 19 所示。

图 19 PME 作为语言特性所实现的抽象概念

所以 PME 其实只是概括了对象属性,而无助于得到这一对象本身。也就是说,从 PME 的角度上来思考,只是对对象的细节刻画;如何从目标系统中识别到该对象,则是刻画它的前提。

对象的 继承性 则是对“对象如何获得”的一个解释。如同我们说整数作为数据,在它的系列中的关系为“+1”一样,继承性约定了对象——这个数据在它的系列中的“关系”为层次继承 7 ,如图 20 所示。

图 20 基本的对象继承

若对象 C 继承自 B,B 继承自 A,则 C 必继承自 A,即 C 必具有 A 都有的属性性质。如同人位于生物继承关系的最末端,因而人必然有所有生物的所有基础性质。又如图 21 所示。

图 21 对象继承性的衍化与证明

基于以上推论,若对象 A 具有某唯一性质,例如“A 是对象”,则 X、B、C 都“必为对象”。因此,对象的继承性保证了对象系统中的每一个数据都必然是对象。

但是对象 X 与对象 C 又各自具有不同性质,例如人与马具有所有陆生动物的性质,但人与马又有不同。这一点,又是通过对象的 多态性 来说明的。多态性意味着对象 X 与对象 C 是在对象 B 的基础上相同的,但在其各自的表达范围中却是不同的(多态)。例如图 22 说明对象 X、C 在范围{B}中是相同的,但在范围{X}和{C}中各自不同。由此,我们可以进一步推论图 23 中的对象 X1、X2 与对象 C 在范围{B}中也是相同的:

图 22 X 与 C 是范围{B}中同类对象的多态

图 23 继承性决定了 X1、X2 与 C 在范围{B}中的多态关系

由此可见,多态性是对象的性质在其继承关系上的表现。由于继承关系本身即是附加的性质,因而多态性也是附加的性质。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文