- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 函数的重载
第七章 函数的重载(多态) 沈项军 计算机科学与通信工程学院 内容提要 静态多态 函数重载 操作符重载 多态介绍 在面向对象编程(OOP)中,多态允许一个接口被用于多个函数。 这里的接口和后面的接口含义不同,指的是对用户开放的代码接口(即用户可以使用的代码部分) 可以在程序的类中应用多态来减少函数的复杂性。 多态可以是静态的或动态的。 静态多态 静态多态指一个实体,它同时存在于各种形式中。 指程序运行时调用的方法在编译完成后就能确定 C#使用两种方式来实现静态多态。它们是: 函数重载:这个方法允许为两个或更多函数使用同样的名字。函数的每个重新定义必须使用不同的参数类型、参数顺序或多个参数。 操作符重载:这个方法允许用户定义的类型例如结构和类,为使它们的对象易于操作而使用重载操作符。 Console.WriteLine Console.WriteLine重载示例 public static void WriteLine(); public static void WriteLine(int); public static void WriteLine(float); public static void WriteLine(long); public static void WriteLine(uint); public static void WriteLine(char); public static void WriteLine(bool); public static void WriteLine(double); public static void WriteLine(char[]); public static void WriteLine(string); public static void WriteLine(object); public static void WriteLine(ulong); public static void WriteLine(string,Object[]); public static void WriteLine(string,object); public static void WriteLine(char[],int,int); public static void WriteLine(string,object,object); public static void WriteLine(string,object,object,object); 动态多态 在动态多态中,函数执行的决定是在运行时进行的。 指程序运行时调用的方法,不能在编译完成后确定,需要在运行时,由具体的运行对象来确定方法 动态多态是比静态多态相比更以有用的,因为动态多态为操作对象提供了更多的灵活性。 C#使用两种方法来实现动态多态。它们是: 抽象类:是基类的特殊类型,它由抽象类成员组成。所有直接从抽象类派生的类成员必须实现所有抽象函数和属性。 虚函数(虚方法): 动物会吃,老虎会吃,长颈鹿也会吃 内容提要 静态多态 函数重载 操作符重载 实现函数重载 函数重载是通过在类中定义两个或更多的同名的函数来实现函数重载。 在函数重载中,函数的每个定义必须在函数签名中不同。 函数签名 函数的签名被下面的部分定义: 参数的数量 参数的类型 参数的顺序 返回类型不是函数签名的一部分 不同参数个数的函数重载 using System; public class Area { private int areaVal; public void AreaCal(int radius) { areaVal = (22/7)* radius*radius; } public void AreaCal(int length, int breadth) { areaVal = length*breadth; } public void AreaCal(int length, int breadth, int height) { areaVal = length*breadth*height; } … } 不同参数类型的函数重载 ... public void AreaCal(int radius) { areaVal = (22/7)* radius*radius; } public void AreaCal(string shapeName) { Console.WriteLine({0} 的面积没有计算,shapeName); } ... 构造函数重载 构造函数也是函数 构造函数也可以被参数
您可能关注的文档
- JavaIO流详解.doc
- 北大青鸟C_课件系列3.ppt
- Java高级IO流.doc
- java论文(附有代码).doc
- 第9章 字符串和文本IO.ppt
- 03 Java语句.ppt
- java基础-异常处理课件.ppt
- hj2se(多态).ppt
- Java 方法 类 包.ppt
- Java基础培训(原创东北大白话版).pptx
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)