接口
摘自《Visual C# 2010开发权威指南》
/**************************************************************************
接口描述的是可属于任何类或结构的一组相关功能,它只包含方法、属性、事件或索引器的签名,而且没有相关的实现。接口中的成员总是公用的,不能存在修饰符。实现接口的类或结构必须实现接口定义中指定的接口成员。可以使用关键字interface来定义接口。
下面是C#中的IComparable接口的声明:
- public interface IComparable
- {
- int CompareTo(object obj);
- }
IComparable接口的定义中仅包含了一个方法CompareTo(),并且该方法没有任何修饰符及实现。如果一个类实现了IComparable接口,它就必须实现CompareTo方法。
下面使用一个例子来说明接口的用法:
- interface IPerson
- {
- int Age { get; set; }
- string Name { get; set; }
- }
- interface IPrintable
- {
- void PrintInfo();
- }
- class Worker : IPerson, IPrintable
- {
- #region IPerson Members
- private int age;
- public int Age
- {
- get { return age; }
- set { age = value; }
- }
- private string name;
- public string Name
- {
- get { return name; }
- set { name = value; }
- }
- #endregion
- #region IPrintable Members
- public void PrintInfo()
- {
- Console.WriteLine("=======Worker.PrintInfo=======");
- Console.WriteLine("Name: {0}", Name);
- Console.WriteLine("Age: {0}", Age);
- }
- #endregion
- }
- class Program
- {
- static void Main(string[] args)
- {
- Worker w = new Worker();
- w.Name = "John";
- w.Age = 20;
- w.PrintInfo();
- }
- }
Worker类实现了两个接口:IPerson和IPrintable。它从IPerson接口中获得了Age和Name两个属性,从IPrintable接口获得了PrintInfo()方法,并为这些继承的成员提供了实现。
接口是引用类型,可以将一个派生自接口的类转化为接口,并通过接口的引用来访问派生类继承的成员。例如:
- class Program
- {
- static void Main(string[] args)
- {
- Worker w = new Worker();
- w.Name = "John";
- w.Age = 20;
- IPerson p = (IPerson)w;
- Console.WriteLine(
- string.Format("IPerson.Name: {0}, IPerson.Age: {1}", p.Name, p.Age));
- Console.WriteLine();
- IPrintable printable = (IPrintable)w;
- printable.PrintInfo();
- }
- }
**********************************************************************/
个人认为接口能降低项目中相同功能代码的识别难度。
要用接口,需求中就必须得有这一接口中的功能。