Interface接口学习总结浅析
来源:互联网 发布:windows 10 v1703 编辑:程序博客网 时间:2024/05/01 23:10
Interface接口的主要功能是什么呢?我们经常在编程时使用的Interface接口那么作用是什么?Interface接口可定义的类是什么?下面我们一一介绍。
1. 接口描述的是可属于任何类或结构的一组相关功能:
◆接口可由方法、属性、事件、索引器或这四种成员类型的任意组合构成。
◆接口不能包含字段。
◆接口成员一定是公共的。
◆若要实现接口成员,类中的对应成员必须是公共的、非静态的,并且与接口成员具有相同的名称和签名。类的属性和索引器可以为接口上定义的属性或索引器定义额外的访问器。例如,接口可以声明一个带有 get 访问器的属性,而实现该接口的类可以声明同时带有 get 和 set 访问器的同一属性。但是,如果属性或索引器使用显式实现,则访问器必须匹配。
2. 接口可定义的类容:
隐式接口:如果类或者结构要实现的是单个接口,可以使用隐式实现。
显式接口:如果类或者结构继承了多个接口那么接口中相同名称成员就要显式实现。显式实现是通过使用接口的完全限定名来实现接口成员的。
使用显式接口目的:
1、因为显式接口成员执行体不能通过类的实例进行访问,这就可以从公有接口中把接口的实现部分单独分离开。如果一个类只在内部使用该接口,而类的使用者不会直接使用到该接口,这种显式接口成员执行体就可以起到作用。
2、显式接口成员执行体避免了接口成员之间因为同名而发生混淆。如果一个类希望对名称和返回类型相同的接口成员采用不同的实现方式,这就必须要使用到显式接口成员执行体。如果没有显式接口成员执行体,那么对于名称和返回类型不同的接口成员,类也无法进行实现。
隐式接口:
如果类实现两个接口,并且这两个接口包含具有相同签名的成员,那么在类中实现该成员将导致两个接口都使用该成员作为它们的实现。例如:
C#
- interface IControl
- {
- void Paint();
- }
- interface ISurface
- {
- void Paint();
- }
- class SampleClass : IControl, ISurface
- {
- // Both ISurface.Paint and IControl.Paint call this method.
- public void Paint()
- {
- }
- }
调用:可以直接调用
显式接口:
如果两个接口成员执行不同的函数,那么这可能会导致其中一个接口的实现不正确或两个接口的实现都不正确。可以显式地实现接口成员 -- 即创建一个仅通过该接口调用并且特定于该接口的类成员。这是使用接口名称和一个句点命名该类成员来实现的。例如:
C#
- public class SampleClass : IControl, ISurface
- {
- void IControl.Paint()
- {
- System.Console.WriteLine("IControl.Paint");
- }
- void ISurface.Paint()
- {
- System.Console.WriteLine("ISurface.Paint");
- }
- }
调用:只能通过接口来调用。
Interface接口的基本内容就向你介绍到这里,希望对你了解和学习Interface接口有所帮助。
- Interface接口学习总结浅析
- Interface接口学习总结浅析
- 【C#学习】接口 Interface
- java abstract类和interface接口学习总结
- 总结一下COM接口(interface)
- JAVA接口(Interface)学习笔记
- JAVA学习十二:接口(interface)
- Java基础学习--接口interface
- 【java学习】8.接口(interface)
- j2se学习笔记-interface接口
- go语言学习-接口(interface)
- Android学习之接口Interface
- C# 接口interface的学习
- 接口和抽象类浅析(Interface and abstract class)
- interface脱耦合和Android当中onclickListener接口浅析
- java学习总结(16.07.11—16.07.12)接口--interface
- java接口interface知识点实例总结
- C++接口实现总结(Interface)
- 从客户端(userName="<hr />")中检测到有潜在危险的 Request.Form 值
- FM打开fmOn()过程
- java自学笔记之数组 排序
- KMP算法的前缀next数组最通俗的解释,如果看不懂我也没辙了
- JTree(右键菜单,可拖拽)+JTable(可翻页,列中含有按钮,隐藏列)
- Interface接口学习总结浅析
- drupal7 自定义网站变量
- 基于ARM处理器的“云计算”是下一个计算浪潮
- FM上层
- 数据库账号权限的创建与设定
- A+B Problem
- 如何使用URLConnection处理http请求
- php单元测试的安装与使用
- 判断textField为空时让按钮不可用的代码