- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C多态性汇编
C#中的多态性首先理解一下什么叫多态。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。多态性通过派生类覆写基类中的虚函数型方法来实现。?多态性分为两种,一种是编译时的多态性,一种是运行时的多态性。编译时的多态性:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。运行时的多态性:运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中运行时的多态性是通过覆写虚成员实现。?下面我们来分别说明一下多态中涉及到的四个概念:重载,覆写,虚方法和抽象方法。重载和覆写的区别:重载类中定义的方法的不同版本?????????public?int?Calculate(int?x,?int?y)?????????public?double?Calculate(double?x,?double?y)特点(两必须一可以)?????????方法名必须相同?????????参数列表必须不相同?????????返回值类型可以不相同覆写?????????子类中为满足自己的需要来重复定义某个方法的不同实现。?????????通过使用override关键字来实现覆写。?????????只有虚方法和抽象方法才能被覆写。?????????要求(三相同)???????????????????相同的方法名称???????????????????相同的参数列表???????????????????相同的返回值类型?例:?????public?class?Test?????{?????????public?int?Calculate(int?x,?int?y)?????????{??????????????return?x?+?y;?????????}??????????public?double?Calculate(double?x,?double?y)?????????{??????????????return?x?+?y;?????????}?????}首先看这个类,我们在同一个类中满足了重载的三个特点,方法名必须相同Calculate;参数列表必须不相同第一个方法的两个参数类型为int类型,第二个方法的两个参数类型为double类型;返回值类型可以不相同一个返回值类型为int,另一个返回值类型为double。然后我们在客户程序中调用这两个方法。这时候我们发现智能提示里提示这个方法已经被重载过一次了。这样我们就可以根据业务逻辑调用不同的方法来实现不同的业务。客户端测试程序:??????????????Test t?=?new?Test();??????????????int?x;??????????????int?y;??????????????Console.WriteLine(Please input an integer.\n);??????????????x?=?Convert.ToInt32(Console.ReadLine());??????????????Console.WriteLine(Please input another integer.\n);??????????????y?=?Convert.ToInt32(Console.ReadLine());??????????????Console.WriteLine(Test class Calculate method result.\n);??????????????int?result1?=?t.Calculate(x,y);??????????????Console.WriteLine(int x + int y = {0}\n,result1.ToString());??????????????double?a;??????????????double?b;??????????????Console.WriteLine(Please input an double.\n);??????????????a?=?Convert.ToDouble(Console.ReadLine());??????????????Console.WriteLine(Please input another double.\n);??????????????b?=?Convert.ToDouble(Console.ReadLine());??????????????Console.WriteLine(Test class Calculate method result.\n);??????????????double?result2?=?t.Calculate(a,b);??????????????
文档评论(0)