接口是面向对象编程技术的一个重要内容。在代码中,接口主要用于负责功能的定义。项目中通过接口来规范类、操作类以及抽象类的概念。
在代码中可以通过接口对类的构成进行限制。接口不负责功能的实现,只负责功能的定义,而类负责功能的具体实现。接口和类的定义很相似。如下的代码定义了一个接口:
Interface IMyInterface
{
}
本小节通过一个实例演示一个定义比较完整的接口。
创建一个Windows控制台应用程序,演示接口的声明。
(1)创建一个名为InterfaceCreate的控制台应用程序项目。
(2)修改Program.cs文件的内容如下:
namespace InterfaceCreate
{
class Program
{
static void Main(string[] args)
{
}
}
// IMyInterface接口
interface IMyInterface
{
// SayHello方法
void SayHello();
// Hello属性
string Hello
{
get;
set;
}
}
}
该程序无结果。
可以看到,无论是属性还是方法,都只有定义而并没有代码实现。如果在SayHello方法中添加代码实现,编译时Visual Studio 2005将会提示错误。
有定义就有实现,接口中进行了相关的定义,在相关的实现类中就需要对接口中的定义进行实现。下面介绍一个实例,定义并实现一个接口。
创建一个Windows控制台应用程序,演示接口的定义和实现。
(1)创建一个名为InterfaceImpl的控制台应用程序项目。
(2)修改Program.cs文件的内容如下:
namespace InterfaceImpl
{
class Program
{
static void Main(string[] args)
{
MyClass a = new MyClass();
a.Hello = "你好,王先生!";
a.SayHello();
}
}
// IMyInterface接口
interface IMyInterface
{
// SayHello方法
void SayHello();
// Hello属性
string Hello
{
get;
set;
}
}
class MyClass:IMyInterface
{
#region IMyInterface 成员
public void SayHello()
{
Console.WriteLine(Hello);
}
public string Hello
{
get
{
return hello ;
}
set
{
hello = value ;
}
}
#endregion
string hello = string.Empty;
}
}
按Ctrl+F5组合键运行程序,运行结果如图6-19所示。
图6-19 运行结果
代码中定义了一个接口IMyInterface,类MyClass实现了该接口。在Main方法中声明了一个MyClass的实例a,并调用了a的相关属性和方法。类MyClass完整地实现了接口IMyInterface的定义。