C#C++C语言学会编程第11课接口

C#C++C语言学会编程第11课接口

ID:33413070

大小:59.95 KB

页数:19页

时间:2019-02-25

C#C++C语言学会编程第11课接口_第1页
C#C++C语言学会编程第11课接口_第2页
C#C++C语言学会编程第11课接口_第3页
C#C++C语言学会编程第11课接口_第4页
C#C++C语言学会编程第11课接口_第5页
资源描述:

《C#C++C语言学会编程第11课接口》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第11课接口接口和类一样,也是属于引用类型。接口可以用来描述属于类或结构的一组相关功能,即定义一种协议。类或结构可以实现接口,同时必须遵循它们所实现接口定义的协议。本章将讲解C#语言中的接口,主要介绍以下知识点。�接口概述;�接口成员;�实现接口;�抽象类和接口。11.1接口概述接口(interface)定义一种协议,实现该接口的类或结构必须遵循该协议。一个接口可以继承于一个或多个其他接口,一个类或结构也可以实现一个或多个接口。接口可以包含4种成员:方法、属性、事件和索引器。接口本身不提供它所定义的成员的实现,它仅仅指定实现该接口的类

2、或结构必须提供的成员。11.1.1接口声明声明接口需要使用interface关键字,语法如下。interface-modifiersinterfaceidentifierinterface-baseinterface-body;interface-modifiers表示接口修饰符(可选),identifier表示接口的名称,interface-base表示接口的基接口(可选),interface-body表示接口体,;(分号)是可选的。411.1.2接口修饰符接口修饰符一般位于接口声明中的interface关键字之前,共包括5个修饰符

3、:new、public、protected、internal和private。其中,public、protected、internal和private修饰符控制接口的可访问性。它们的意义具体说明如下。�public修饰符,表示该接口是公开的,访问不受限制。�protected修饰符,表示该接口只能是本身或其派生的接口访问。�internal修饰符,表示该接口只能是在当前应用程序中访问。�private修饰符,表示该接口只能是本身访问。11.1.3接口继承接口可以继承于一个或多个其他接口,也可以不继承。被继承的接口称为该接口的显式基接口

4、。当一个接口具有一个或多个显式基接口时,在声明该接口时,接口标识符后就要紧跟一个冒号和一个由,(逗号)分隔的基接口标识符列表。11.2接口成员接口的成员必须是方法、属性、事件或索引器,而不能包括常量、字段、运算符、实例构造函数、析构函数或类型,也不能包含任何种类的静态成员。一个接口可以不包括任何成员,也可以包括一个或多个成员。接口成员默认隐式地具有public访问属性,而且在声明接口成员时不能包含任何修饰符(如abstract、public、protected、internal、private、virtual、override和sta

5、tic),否则会发生编译时错误。注意:一个接口的成员包括两部分:由接口本身声明的成员和其从基接口继承的成员。11.2.1属性在接口中声明属性时,只能声明该属性具有哪个访问器(如get或set访问器),而不能实现该访问器。接口属性的访问器只用于表明该属性是只读的、只写的还是读写的,访问器体必须始终是一个;(分号)。11.2.2索引器接口索引器和接口属性比较相似。在接口中声明索引器时,只能声明该索引器具有哪个访问器(如get或set访问器),而不能实现该访问器。接口索引器的访问器只用于表明该索引器是只读的、只写的还是读写的,访问器体必须始

6、终是一个;(分号)。11.2.3方法在接口中声明方法时,只能声明该方法的签名,而且该方法的方法体只能为;(分号),而不能包括该方法的实现代码。11.2.4事件在接口中声明事件时,只能声明该事件的签名,而且事件的名称之后必须接一个;(分号)。11.3实现接口类和结构都可以实现接口。如果某一个类或接口实现了一个或多个接口,那么在声明该类或结构时,将实现的接口的标识符包含在该类或结构的基类列表中。11.3.1实现属性实现接口属性即添加该接口属性的实现代码,接口属性的名称和实现该接口属性的名称相同。11.3.2实现索引器实现接口索引器即添加该

7、接口索引器的实现代码。11.3.3实现方法实现接口方法即添加该接口方法的实现代码,接口方法的名称和实现该接口方法的签名相同。11.3.4实现事件实现接口事件即添加该接口事件的实现代码,接口事件的名称和实现该接口事件的签名相同。11.4抽象类和接口抽象类使用abstract修饰符,它用于表示所修饰的类是不完整的,并且它只能用作基类。抽象类与非抽象类在以下3个方面的区别。�抽象类不能直接实例化。如果抽象类使用new运算符,则发生编译时错误。�允许(但不要求)抽象类包含抽象成员。�抽象类不能被密封。当从抽象类派生非抽象类时,这些非抽象类必须

8、实现所继承的所有抽象成员,即重写这些抽象成员。11.5实例一:设计算术计算接口【实例11-1】设计了用于算术计算的ICompute接口。该接口包括4个方法,具体说明如下。doubleAdd(doubleleftValue

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

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

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