第5章继承与多态InheritanceandPolymorphism.pptVIP

第5章继承与多态InheritanceandPolymorphism.ppt

  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文档。上传文档
查看更多
第5章继承与多态InheritanceandPolymorphism

第5章 继承与多态 Inheritance and Polymorphism 本章主要内容 继承 多态 抽象类、密封类 装箱与拆箱 本章学习目标 理解并使用继承 理解并使用多态性 理解重写的概念 具体化化与一般化 Specialization and Generalization 在设计程序时,经常需要管理相似却又不完全相同的信息。面向对象的继承原则允许创建一个通用(一般化)类,然后从这个通用(一般化)类派生出更多的特殊(具体)类。 体会基类与派生类的关系。 继承 inheritance 从前面的图可以得出以下信息 子类可以获得(继承)基类的成员 子类可以在基类基础上创造新的成员。 子类可以改写基类中的成员方法。 子类还可以有子类。(子类继承自基类,基类派生子类) 主要优点:代码重用 多态 [课堂练习]使用类视图画出P106图5-3的关系图。 实现继承 implementing inheritance [access-modifiers] class identifiers [:base-class] {class-body} public class ListBox:Control [知识点回顾] protected修饰符的作用? 示例程序Inheritance 多态 Polymorphism 多态性是一个面向对象的概念,它允许以相似的方式来对待所有派生类,尽管这些派生类是各不相同的。 现实生活中的例子→例如统一的120急救电话。 在多态的程序中也是一样的,表面上看起来调用方法是一样的(基类对象加方法名)(子类中有相同方法名但被重写过了),但却可以判定具体应该是调用哪个子类的对应方法。如果原始虚方法没有被重写,那么最底层的派生方法就是原始虚方法,否则,最底层的派生方法就是相应对象中的重写方法。 创建多态 Creating Polymorphism 多态怎样实现的? 示例程序VirtualMethods2 示例程序VirtualMethod1 注意构造函数的执行顺序 如果想要调用基类的非默认构造函数,那么必须使用 base 关键字。 控制访问 Controlling Access 类及其成员对其它程序而言的可见性? 修饰类的修饰符只能是public与internal public class myClass { Protected int myValue; } 抽象类 Abstract Classes 当创建一个类时,有时需要让该类包含一些特殊的方法,该类对这些方法不提供实现,但是该类的派生类必须实现这些方法,这些方法称为抽象方法。 规则:此时类也变为抽象类,不能实例化。 以访问修饰符开始,后面跟着 abstract 修饰符 抽象方法的优点在于基类无需对抽象方法提供实现,但是基类的派生类必须为基类中的抽象方法提供实现。 示例程序abstractmethods 密封类 Sealed Class 与抽象类刚好相反,只允许实例化,不允许继承。 使用关键字sealed。 课堂练习 编写代码,定义一个基类MyClass,其中包含虚拟方法GetString()。这个方法应返回存储在受保护字段myString中的字符串,该字段可以通过只写公共属性ContainString来访问。 从类MyClass派生一个类MyDerivedClass。重写GetString()方法,使用该方法的基类执行代码从基类中返回一个字符串,但在返回的字符串中添加文本“(output from deriverd class)” 课堂练习 定义以下类 定义抽象类HotDrink,它有抽象方法Drink()、虚方法AddMilk()和虚方法AddSugar(),以及属性Milk和Sugar。 派生于HotDrink的类CupOfCoffee, CupOfTea (增加一个属性LeafType)。 定义一个测试类,其中一个函数可以接受上述示例的两个杯子对象作为参数。该函数应可以为它传送的任何杯子的对象调用AddMilk()和AddSugar()。 * * 本章概述 上一章讲述了面向对象的基本概念,本章将继续讲述面向对象的一些高级特性和用法,包括继承性、多态性、接口等的应用。 教学目标 理解面向对象的继承性 理解面向对象的多态性 理解引用类型的概念,并掌握引用类型和值类型的不同 初步了解泛型的概念 教学重点 面向对象的继承性 面向对象的多态性 引用类型 教学难点 继承本身不难理解,难就难在如何在设计的时候合理的应用继承 多态本身不难理解,难就难在如何在使用的时候合理的使用多态 接口与抽象的异同,以及如何合理的应用接口 课本知识点 6.1继承性 6.2多态性 6.4 C#数据类型 * 继承性 教学提示 : 本部分主

文档评论(0)

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

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

版权声明书
用户编号:8016031115000003

1亿VIP精品文档

相关文档