c# 重载重写 隐藏 数组 集合 委托等

c# 重载重写 隐藏 数组 集合 委托等

ID:33384617

大小:253.50 KB

页数:39页

时间:2019-02-25

c# 重载重写 隐藏 数组 集合  委托等_第1页
c# 重载重写 隐藏 数组 集合  委托等_第2页
c# 重载重写 隐藏 数组 集合  委托等_第3页
c# 重载重写 隐藏 数组 集合  委托等_第4页
c# 重载重写 隐藏 数组 集合  委托等_第5页
资源描述:

《c# 重载重写 隐藏 数组 集合 委托等》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.override(重写)和overload(重载)的区别?答:override表示重写,用于继承类对基类中虚成员的实现overload表示重载,用于同一个类中同名方法不同参数(包括类型不同或个数不同)的实现示例:CodeusingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceExample07{classProgram{classBaseClass{publicvirtualvoidF(){Console.Writ

2、eLine("BaseClass.F");}}classDeriveClass:BaseClass{publicoverridevoidF(){base.F();Console.WriteLine("DeriveClass.F");}publicvoidAdd(intLeft,intRight){Console.WriteLine("AddforInt:{0}",Left+Right);}publicvoidAdd(doubleLeft,doubleRight){Console.WriteLine("

3、Addforint:{0}",Left+Right);}}staticvoidMain(string[]args){DeriveClasstmpObj=newDeriveClass();tmpObj.F();tmpObj.Add(1,2);tmpObj.Add(1.1,2.2);Console.ReadLine();}}}结果:BaseClass.FDeriveClass.FAddforInt:3Addforint:3.32、类(class)和接口(interface)的区别?.Net提供了接口,这个

4、不同于Class或者Struct的类型定义。接口有些情况,看似和抽象类一样,因此有些人认为在.Net可以完全用接口来替换抽象类。其实不然,接口和抽象类各有长处和缺陷,因此往往在应用当中,两者要结合来使用,从而互补长短。9HU"lzW‑P7K0接下来先说说抽象类和接口的区别。区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。这些听起来有些

5、虚,举个例子。例如,狗是对于所有狗类动物的统称,京哈是狗,牧羊犬是狗,那么狗的一般特性,都会在京哈,牧羊犬中找到,那么狗相对于京哈和牧羊犬来说,就属于这类事物的抽象类型;而对于“叫”这个动作来说,狗可以叫,鸟也可以叫。很明显,前者相当于所说的是抽象类,而后者指的就是接口。区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分。1//抽象类2publicabstractclassAbsTest3{4publicvirtualvoidT

6、est()5{6Debug.WriteLine("Test");7}1publicabstractvoidNewTest();2}34//接口5publicinterfaceITest6{7voidTest();8voidNewTest();9}区别三,继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类中必须要给出相应的方法和属性实现。区别四,在抽象类中,新增一个方法的话,继承类中可以不

7、用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。知道了两者的区别,再来说说,接口相对于抽象类的优势。好处一,接口不光可以作用于引用类型,也可以作用于值类型。而抽象类来说,只能作用于引用类型。好处二,.Net的类型继承只能是单继承的,也就是说一个类型只能继承一个类型,而可以继承多个接口。其实,我对于这一点也比较赞同,多继承会使继承树变的混乱。好处三,由于接口只是定义属性和方法,而与真正实现的类型没有太大的关系,因此接口可以被多个类型重用。相对于此,抽象类与继承类的关系更紧密些。好处四,

8、通过接口,可以减少类型暴露的属性和方法,从而便于保护类型对象。当一个实现接口的类型,可能包含其他方法或者属性,但是方法返回的时候,可以返回接口对象,这样调用端,只能通过接口提供的方法或者属性,访问对象的相关元素,这样可以有效保护对象的其他元素。好处五,减少值类型的拆箱操作。对于Struct定义的值类型数据,当存放集合当中,每当取出来,都需要进行拆箱操作,这时采用Struct+Interface结合的方法,从而降低拆箱操作参看如下文章提供的方法。相对于抽象

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。