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#多态性-创新互联
标题网址:https://www.cdcxhl.com/article4/ceddie.html

成都网站建设公司_创新互联,为您提供自适应网站网站收录域名注册动态网站Google网站改版

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站建设