目录
什么是接口
接口是指定一组函数成员而不实现它们的引用类型
要实现一个接口,类或结构必须做的两件事:
声明接口
实现接口
只有类和结构可以实现接口。
在基类列表中包括接口名称
为每一个接口成员提供实现
- using System;
- using System.Collections.Generic;
- using System.Text;
-
- namespace Csharpzuoye
- {
-
- interface IIfc1
- {
- void PrintOut(string s); //声明接口
- }
-
- class MyClass : IIfc1 //声明类
- {
- public void PrintOut(string s) //实现接口
- {
- Console.WriteLine("Calling through :{0}", s);
- }
- }
-
-
- class Program
- {
- static void Main()
- {
- MyClass myClass = new MyClass(); //创建实例
- myClass.PrintOut("object"); //调用方法
- }
- }
- }
接口是引用类型
接口不仅仅是类或结构要实现的成员列表,它是一个引用类型
我们不能直接通过类对象的成员访问接口。但是我们可以通过把类对象引用强制转换成接口类型来获取指向接口的引用。有了接口的引用就可以使用点号来调用接口的方法
接口和as运算符
实现多个接口
类或结构可以实现任意数量的接口
所有实现的接口必须列在基类列表中并以逗号分隔。
实现具有重复成员的接口
如果两个街廓成员有相同的签名和返回类型,编译器如何处理
多个接口的引用
如果类实现了多个接口,我们可以获取每一个接口的独立引用
派生成员作为实现
显式接口成员实现
每一个接口分离实现,我们可以创建显式接口成员实现
显式接口成员实现只可以通过指向接口的引用来访问。也就是说,其他的类成员都不可以直接访问它们
必须总是通过接口的引用来访问
接口可以继承接口
接口可以在基接口列表中有任意多个接口