所谓接口通俗点来说就是一个声明,它规定了一个类要包含的带有指定参数的一系列专门的方法,如果一个类含有这样的一些方法,我们就说这个类实现了接口.
下面是使用接口的一个例子:
第一步:先定义一个接口,如下:
public interface Multisel
{
string GetString(string s);
void SetLabelValue(Label lb);
}
第二步: //定义两个实现接口的类
public class UseMultisel1:Multisel
{
//实现接口中声明的方法的具体行为动作
public string GetString(string s) //获得字符串s的大写形式
{
return s.ToUpper();
}
public void SetLabelValue(Label lb)//为Label控件赋值
{
lb.Text="Use Multisel Sample 1";
}
}
public class UseMultisel2:Multisel
{
//实现接口中声明的方法的具体行为动作
public string GetString(string s)
{
return s.ToLower();
}
public void SetLabelValue(Label lb)
{
lb.Text="Use Multisel Sample 2";
}
}
第三步:使用接口
private void Button2_Click(object sender, System.EventArgs e)
{
UseMultisel1 use1=new UseMultisel1();
use1.SetLabelValue(lbResult1);
lbResult1.Text+=use1.GetString(txWord.Text);
UseMultisel2 use2=new UseMultisel2();
use2.SetLabelValue(lbResult2);
lbResult2.Text+=use2.GetString(txWord.Text);
}
在此拿接口跟抽象做个比较.
创建一个接口就是创建一个或者多个方法的定义,在每个实现该接口的类中必须实现这些方法的具体功能,系统不会生成任何默认的方法代码,必须自己完成实现代码,接口的优点是它提供了一种让一个类成为两个子类的方式:一个是继承,一个是来自子接口,如果实现该接口的类陋掉了一个接口方法,编译器就会产生错误.
而创建一个抽象类就是创建一个这样的基类,它可以有一个或多个完整的可以工作的方法,但至少有一个方法未实现并声明为抽象的,我们不能实例化一个抽象类,而必须从它的派生类来实例化.如果一个抽象类所有的方法都未在基类中实现,那么该抽象类本质上就是一个接口.