超级外链吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

超级外链吧
帖子
热搜: 发外链工具 外链资源 外链网站广告位招租:766698661
查看: 13|回复: 0

聊聊软件开发面向对象方法的概念继承

[复制链接]
发表于 2019-11-11 10:29 | 显示全部楼层 |阅读模式

继承(1)概念在面向对象方法中占有着非常重要的地位,并且是面向对象技术可提高软件开发效率的根本原因之一。在此可以为继承概念作如下定义:特殊类拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。为单机游戏玩家提供最新单机游戏业界动态、国内外单机游戏下载、单机游戏补丁、单机游戏攻略秘籍、单机游戏专题等内容。


继承概念包含着自动地拥有或隐含地复制的意恩。也就是说它的一般类中定义过的属性和服务,而它能自动地、隐含地拥有其向方法的这种特性称作继承性。

—个特殊类拥有从它的一般类中继承下来的属性与服务,当然也可以自己定义新的属性和服务。当这个特殊类又被它更下层的特殊类继承时,它继承来的和自己定义的属性和服务又都一起被更下层的类继承下去。这样就形成了继承的传递关系。

集成机制是对普适的人类思维方式的继承,是软件工程学上的一次飞跃。从本质上来说,继承机制实际上是一种分层机制。一般类处于该体系层次的最高层,而通过继承机制所产生的特殊类处于该体系层次的下一层。如此往复,便形成了关于客观事物的分层体系。举例来说,以A、B和C的属性和服务。因此,类C相对于B来说就是特殊类,而类B相对于C来说就是一般类。因此就构成了一个关于类A、B、C的层次结构。具体实现如图4-2所示。

通过继承关系,它简化了人们对挥舞的认识和描述。例如,认识了人的特征之后,字啊考虑中国人时只要知道中国人也是一种人的这个事实,那就认为它是利索当然的具有人的全部一般特征,只需要把经理用户发现和描述中国人独有的那些特征。在软件开发过程中定义特殊类时,不需把它的一般类已经定义过的属性和服务重复地书写一遍,只需要声明它是某个类的特殊类,并定义它自己的特殊属性与服务。无疑这将明显地减轻开发工作的强度。

另外,继承对于软件复用是很有益的。在开发一个软件系统时,使特殊类继承一般类,这本身就是软件复用,然而其复用意义不仅如此。如果把用面向对象程序设计语言开发的类作为可复用构件提交到构件库,那么在开发新系统时不仅可以直接地复用这个类,还可以把它作为一般类,通过继承而实现复用,从而大大扩展了复用范围。

一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这种继承模式叫做多继承。这种情况是常常可以遇到的。例如,有了亚洲人和欧洲人两个一般类,在考虑欧亚混血儿这个类时就可发现,它既属于亚洲人,又届于欧洲人。所以它可以同时作为亚洲人和欧洲人这两个类的特殊类。在开发这个类时,如果能让它同时继承亚洲人和欧洲人这两个类的属性与服务,则需要为它新增加的属性和服务就更少了,这无疑将进一步提高开发效率。但在实现时能不能做到这一点却取决于编程与语言是否支持多继承。

继承是任何一种面向对象程序设计语言必须具备的功能,多继承则未必,现在有许多面向对象程序设计语言只能支持单继承而不能支持多继承。当一个特殊类继承了多个—般类时,若这些一般类中的属性或服务有彼此同名的现象,当特殊类中引用这样的属性名或者服务名时。系统无法判定它的语义到底是指向哪个一般类中的属性和服务。解决的办法有两种。一是不允许多继承结构中的各个—般类的属性及服务取相同的名字。这会为开发者带来一些不便;二是由面向对象程序设计语言提供一种更名机制,使程序司以在特殊类中更换从各个—般类继承来的属性或服务的名字。

多继承无论从概念上还是从技术上都是单继承的推广。虽然多继承在现实中是很常见的,但系统开发时否采用多继承受到面向对象程序设计语言功能的影响,目前比较现实的做法是,在面向对象需求分析阶段如实地用多继承结构描述问题域中的多继承现象。在考虑实现时,如果决定选用一种仅支持单继承的语言,则把多继承装华为单继承。

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

外链吧|超级外链|超级外链吧

(本站内容属用户自主发表,本站不承担任何法律责任,侵删:766698661@qq.com) GMT+8, 2019-11-20 04:13

Powered by Discuz! X3.4

© Comsenz Inc.

快速回复 返回顶部 返回列表