面向对象分析与设计01.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象分析与设计01

多态性(polymorphism) 概念 多态性原意是指一种事物具有多种形态。 在面向对象技术中,指不同的对象收到同一消息时产生不同的动作。 覆盖(override )是典型的对多态的应用。 重载(overload) 不是对多态的应用。 前期绑定与后期绑定 前期绑定:在程序运行之前进行绑定,由编译器和连接程序实现,又叫做静态绑定 后期绑定:在运行时根据对象的类型进行绑定,由方法调用机制实现,因此又叫做动态绑定,或者运行时绑定。除了前期绑定外的所有方法都属于后期绑定。 Bruce?Eckel:“不要犯傻,如果它不是后期绑定,它就不是多态。” 重载 重载(overload)是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同) 例如:public void test(int x){} public void test(string x){} 重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。编译器做过修饰后的函数名称可能是这样的:int_test、str_test。对于这两个函数的调用,在编译器间就已经确定了,是静态的。也就是说,它们的地址在编译期就绑定了(前期绑定)。因此,重载只是一种语言特性,与多态无关,与面向对象也无关! 覆盖 覆盖(override)是指在子类中重新定义父类的虚函数的做法。 真正和多态相关的是“覆盖”。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类地址,动态的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(后期绑定)。 示例 示例 Class person { Public virtual void work() { Console.WriteLine(person work); } } Class teacher: person { Public override void work() { Console.WriteLine(teaching); } } Class student: person { Public override void work() { Console.WriteLine(study); } } 示例 static void Main() { person p1 = new teacher(); person p2 = new student(); p1.work(); p2.work(); } 输出: teaching study 多态的作用 多态性支持“同一接口,多种方法”,消除了类之间的耦合关系,使程序更容易扩展,提高程序设计的灵活性。 -*- 内容安排 从结构化到面向对象 课程介绍 对象技术 对象和类 对象技术相关原则 上升到面向对象 -*- 实例1: OO观点的个人简介 tanHuobin是Teacher类的一个实例,该实例是基于beiHangUniversity对象的softwareSchool成员对象工作 类GraduateStudent的所有实例都可以通过Course类的对象ooTechnology建立关联,并可发送phone消息(消息内容862)或email消息 (消息内容:thbin@buaa.edu.cn) -*- OO个人简介的UML表示 -*- 实例2:对象思维分析问题 昨天我的一个朋友结婚了 -*- 问题分析-1 A. 这里面有什么东西? 月老,小伙,姑娘,恋人,玫瑰花 B. 每个东西看上去是什么样的? 月老,看上去有些年纪了,挺热心的 小伙,看上去很强壮,很诚实的 姑娘,看上去好漂亮,还很温柔 恋人,看上去很黏糊,当然就结婚了 玫瑰花,火红火红的,难怪姑娘动情了 -*- 问题分析-2 C. 每个东西能做点什么用? 月老:牵线搭桥,介绍认识 小伙:追求献花,表达爱意 姑娘:仰慕倾情,以身相许 恋人:拍拖,…,结婚 玫瑰花:令姑娘头晕,传情示爱 -*- 问题分析-3 D. 这些东西都呆在什么地方? 月老:婚介所,交友网站 小伙:软件园,住回龙观 姑娘:人民医院,住望京 恋人:情侣路,电影院, … 玫瑰花:花店里,小伙手中,姑娘手中 -*- 问题分析-4 E. 这些东西之间有什么关系? 关系 月老 小伙 姑娘 恋人 玫瑰 月老 干妈 舅妈 撮合者 没关系 小伙 干儿子 男友老公 男主角 买送主

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档