Interface接口学习总结浅析
2013-12-04 21:34
369 查看
Interface接口学习主要向你介绍了在编程时使用的Interface接口那么作用是什么?Interface接口可定义的类是什么?希望对你了解和学习Interface接口有所帮助。
AD:2013云计算架构师峰会课程资料下载
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接口有所帮助。
AD:2013云计算架构师峰会课程资料下载
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接口学习总结浅析
- java8学习总结——函数式接口@FunctionalInterface
- java学习总结(16.07.11—16.07.12)接口--interface
- 接口测试学习总结
- IPsec学习总结(1)IPsec技术浅析——发展
- 个人学习-java-接口(interface)
- Java容器学习笔记(二) Set接口及其实现类的相关知识总结
- jbpm4.4学习总结(三)常用接口使用说明 推荐
- 学习笔记4:java 1.8 函数式接口 @FunctionalInterface 注解
- 【Go学习】浅析Go语言Interface类型的语法行为及用法
- Java基础学习中,关于面向对象中多态、抽象类、接口的总结
- caffe学习笔记----4-matlab接口总结
- Python学习笔记&接口测试总结
- java学习笔记8--接口总结
- golang语法总结(二十二):接口interface
- java学习笔记8--接口总结
- 关于static静态的、继承、接口interface、final关键字、单例设计模式总结
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [4] 首页 APP 接口开发方案 ③ 定时读取缓存方式
- java学习15-面向对象(interface接口)