温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#forUnity快速入门(连载7)-C#多态性

发布时间:2020-07-06 22:21:10 来源:网络 阅读:1573 作者:Liu_guozhu 栏目:开发技术

 C# for Unity 编程语言快速入门教程(连载7)---C#OOP编程之多态性 


    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 类对象”

    

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI