C#forUnity快速入门(连载7)-C#多态性-创新互联
C# for Unity 编程语言快速入门教程(连载7)---C#OOP编程之多态性
创新互联建站长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为虞城企业提供专业的成都网站建设、成都网站设计,虞城网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。C#的多态性本质上就是“一个方法实现多种功能”,为大中型项目开发提供便利性,起到大幅提高效率的目的。在C#的多态性上主要分为:“方法重载”与“方法覆盖”两种。
“方法重载”说的是一个方法,通过不同的“签名”(即:不同的方法参数列表),实现不同的功能,从而避免了大量相似的功能需要不同的方法名。
“方法重写"是指在具有继承关系的父子类中,子类通过本功能实现不同功能的一种技术手段,目的是实现编程的灵活性。例如C#中Object 这个"根类"(即:通俗说就是“老祖宗”类,再也没有上级类了)有一个ToString() 的方法,我们很多的项目类中,为了项目的实际需要常常“重写”这个方法。
现就这一部分知识点,总结如下:
1: 方法重载 [静态多态性]
1.1> 方法(函数)签名
参数的数量
参数的类型
参数的顺序
1.2>构造函数重载
2: 继承关系下的方法重载(即重写) [动态多态性]
2.1> 使用 virtual 与override 关键字.
A) 基类(即:父类)不为virtual 的方法,派生类不能使用override 进行重写。
B) 假如派生类(即:子类)不用override 关键字来声明方法,就不会覆盖基类方法, 它只会成为和基类的方法完全不相关的另一个方法的实现。
2.2>使用 sealed/partial 关键字.
密封类表示不能继承该类。
密封方法表示不能重写该方法。可以覆盖父类的密封方法,与父类中的方法是否为密封的没有关系。
2.3> 关于方法重写的部分规则总结
A): 不能重写父类中的sealed方法.
B): 不能重写父类中的static 方法.
C): 子类必须重写父类中的抽象方法. [备注:“抽象方法”,笔者在下一篇进行详细讲解]
本部分的笔者提供以下编程题目,供C#初学者进行编程练习。
1: 利用多态性实现多功能计算器:
1) 定义方法名为computeMethod 的方法,实现加法器。
2) 再定义方法名为computeMethod 的方法,实现具备加减乘除综合计算功能。
3) 在main 方法中调用以上方法,且测试。
2: 利用多态性实现如下功能。
1) 定义一个Father 类,利用构造方法的重载概念定义三个构造方法。
2) 定义Child 类继承Father类,在Child的构造方法中分别调用父类不同的构造方法。
3: 设计一个基类,在其中创建方法MConvert,这个方法接受一个代表公里数的参数,将其转换为对等的英里数之后,然后创建一个继承此类的子类,增加可将输入的公斤数转换为磅的新方法 KConvert, 最后产生子类的实例对象, 测试这两个功能。
提示信息:
1千米(公里) = 0.62英里
1千克(公斤) = 2.2磅
4: 调整上一题的内容,将其中的MConvert方法声明为virtual, 然后在子类中进行覆写,以其所接受的参数为正方形边长,转换为英里后计算其面积。
5:创建一个类,重写ToString() 方法, 当其被引用的时候,能够输出此类对象的说明文字,如下:“测试用的myObject 类对象”
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享标题:C#forUnity快速入门(连载7)-C#多态性-创新互联
当前URL:http://ybzwz.com/article/ceddie.html