您好,登录后才能下订单哦!
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 类对象”
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。