当前位置: 首页 > news >正文

C#多态-重载

1.多态-方法重载

//面向对象编程四大特性:抽象 封装 继承 多态

//多态指同一个行为具有不同表现形式的能力

//多态可以是静态或者动态的,静态指的实在编译过程中发生,动态指的是在运行过程中发生

//静态多态

//在编译过程中,通过方法重载和运算符重载来实现编译时的多态,也叫做静态绑定或早期绑定

//我们对类进行相同的new行为,出现了不同的效果,这个就可以理解成多态

//比如strs.IndexOf;//参数形式9种写法 但是方法的名字都是IndexOf,这就叫方法的重载string类的多态

//方法重载 同类同名不同参

//你可以在同一个范围内对相同的方法名有多个定义

//方法定义必须彼此不同,可以是 参数个数不同, 参数的数据类型不同, 参数的顺序不同

//不能重载的只有返回值类型不同的方法声明,修饰符不同更不算,参数名不同也不同也不算

//其实之前学的无参构造和有参构造就是重载

//构造函数的重载

publicPeople()

{

Console.WriteLine("无参构造函数");

}

publicPeople(stringa)//参数个数不同

{

Console.WriteLine("参数是字符串的有参构造函数");

}

publicPeople(inta)//参数的数据类型不同

{

Console.WriteLine("参数是int的有参构造函数");

}

//定义一个Student类 实现Study方法的重载

//public void Study()

//public void Study(string name) //参数的个数不同

//public void Study(string name,int score)

//public void Study(int score,string name) //参数的顺序不同

2.运算符的重载

//我们可以重新去定义某个类中的运算符的含义,完成自定义的运算,对象进行相应的运算符操作

//一个运算符的重载,其实就是一个方法而已,对对象执行相应的运算符操作时,会自动执行这个重载的运算符方法,运算符重载没有强制语义

  1. 格式:public static 返回值类型 operatop 要重载的运算符(参数){}

//static静态,不能写成实例方法,运算符不属于某一个实例,参数不能全部都是普通数值类型,至少有一个当前的类类型

//重载+运算符 计算两个盒子的体积之和

publicstaticintoperator+(Boxb1,Boxb2)

{

returnb1.Volume + b2.Volume;

}

//C#强制规定:成对重载 >/< ==/!= 否则报错

publicstaticbooloperator>(Boxb1,Boxb2)

{

returnb1.Length > b2.Length;

}

publicstaticbooloperator<(Boxb1,Boxb2)

{

returnb1.Length < b2.Length;

}

publicstaticbooloperator==(Boxb1,Boxb2)

{

returnb1.Length == b2.Length;

}

publicstaticbooloperator!=(Boxb1,Boxb2)

{

returnb1.Length != b2.Length;

}

//无法重载逻辑运算符当中的&& ||

//复合赋值运算符不能显示重载 在重载二元运算符时,也会隐式重载相应的复合赋值运算符,例如重载'+' 运算符也会隐式重载"+="

http://www.jsqmd.com/news/1357108/

相关文章:

  • UE5 Niagara粒子系统执行顺序与数据流核心解析
  • 如何用AI助手提升日本麻将水平?mahjong-helper实战指南
  • 数据中台与分布式架构的融合实践与优化
  • 常压立式火管采暖锅炉设计与应用指南
  • 生命涌现的小龙虾技能之【Frog Skin Moisture Assessment | 蛙类皮肤湿润度评估】简介
  • 近一周AI Coding行业动态与实用参考
  • Jenkins持续集成实战:自动化流水线搭建与优化
  • OpenRGB完整指南:一个软件控制所有RGB设备,告别厂商软件混乱
  • C语言实现国际象棋AI:从位棋盘到Alpha-Beta剪枝的实战指南
  • 2026届最火的AI辅助写作助手推荐榜单
  • 构建可观测AI应用:从成本、质量与性能监控到Gemini API实践
  • 降重降AIGC率AI工具测评
  • UAssetGUI:解锁Unreal Engine资产底层编辑与批量自动化处理
  • Vibe Coding实战指南:从AI编程工具配置到高效提示词工程
  • HK32F030M 芯片手册从 PDF 变成 Markdown:一次工具选型与混合管线的完整历程
  • AI芯片厂自建发电厂:算力竞争进入能源密集型新阶段
  • DAG上最长不下降子序列:结合图论与动态规划的GESP七级精讲
  • 飞渡科技51视界漂视网络三大平台发力数字孪生行业格局生变
  • 智能运维(AIOps)在制造业数字化转型中的实践与优化
  • Barlow字体家族:3种宽度×9种字重,如何为你的设计找到完美匹配?
  • Figma到Unity设计转换全攻略:原理、工具与高效工作流实践
  • Qwen3.5-9B破限版本地部署指南:Ollama+GGUF量化实战
  • 网站建设费用清单:从入门到精通,一文讲透到底要花多少钱
  • 2026年8月湖南省联通300M单宽带实测办理全流程 - 找卡家园
  • Unity WebGL输入框复制粘贴难题:原理剖析与跨平台解决方案
  • UEC++调试指南:掌握UE_LOG与屏幕信息输出实战技巧
  • 物理AI驱动数字孪生:从三维可视到智能决策的实践路径
  • Python 函数与类:从 def 到 class 的完整指南
  • Pygame入门:从零开发打砖块游戏教程
  • 科研图表配色方案:10色SCI期刊级实战指南