C#中的接口、抽象类、虚类、委托

C#中的接口、抽象类、虚类、委托

ID:37908963

大小:43.00 KB

页数:4页

时间:2019-06-02

C#中的接口、抽象类、虚类、委托_第1页
C#中的接口、抽象类、虚类、委托_第2页
C#中的接口、抽象类、虚类、委托_第3页
C#中的接口、抽象类、虚类、委托_第4页
资源描述:

《C#中的接口、抽象类、虚类、委托》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Interface接口只包含方法、委托或事件的签名。方法的实现是在实现接口的类中完成的,如下面的示例所示:interfaceISampleInterface{voidSampleMethod();}classImplementationClass:ISampleInterface{//Explicitinterfacememberimplementation:voidISampleInterface.SampleMethod(){//Methodimplementation.}staticvoidMain(){//Declareaninterfaceinstance.ISa

2、mpleInterfaceobj=newImplementationClass();//Callthemember.obj.SampleMethod();}}接口可以是命名空间或类的成员,并且可以包含下列成员的签名:·方法·属性·索引器·事件一个接口可从一个或多个基接口继承。当基类型列表包含基类和接口时,基类必须是列表中的第一项。实现接口的类可以显式实现该接口的成员。显式实现的成员不能通过类实例访问,而只能通过接口实例访问,例如:有关显式接口实现的更多详细信息和代码示例,请参见显式接口实现(C#编程指南)。下面的示例演示了接口实现。在此例中,接口IPoint包含属性声明,后

3、者负责设置和获取字段的值。Point类包含属性实现。//keyword_interface_2.cs//InterfaceimplementationusingSystem;interfaceIPoint{//Propertysignatures:intx{get;set;}inty{get;set;}}classPoint:IPoint{//Fields:privateint_x;privateint_y;//Constructor:publicPoint(intx,inty){_x=x;_y=y;}//Propertyimplementation:publicintx{

4、get{return_x;}set{_x=value;}}publicinty{get{return_y;}set{_y=value;}}}classMainClass{staticvoidPrintPoint(IPointp){Console.WriteLine("x={0},y={1}",p.x,p.y);}staticvoidMain(){Pointp=newPoint(2,3);Console.Write("MyPoint:");PrintPoint(p);}}输出MyPoint:x=2,y=3C#中抽象类和接口的区别?声明方法的存在而不去实现它的类被叫做抽象类(a

5、bstractclass),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义st

6、aticfinal成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。C#中抽象类和虚类的区别?虚方法的关键字是virtual抽象方法的关键字是abstract虚方法和抽象方法的区别:虚方法:可以在抽象类和非抽象类中定义,可以写在父类中,在子类中可以被重写,在定义

7、虚方法时必须实现虚方法(在定义虚方法时需要写实现方法的代码或者至少要写一个分号)抽象方法:必须定义在抽象类中,必须写在父类中,在子类中必须被重写,在定义抽象方法时不能实现方法(在定义抽象方法时不能有大括号和代码)例如:人:普通人:输出姓名(输出信息要写在人的类中)学生:输出姓名、学号、年龄、爱好等家长:输出姓名、联系电话教师:输出姓名、所授课程注:如果我们实现的这个功能它的一部分功能(输出)要写在父类中,而且在不同的子类中需要重写,那么在父类中的方法必须定义为虚方法,否则,如果在父类中只需要指定有什么功能,但不需要

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

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

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