接口通过类继承来实现,一个类虽然只能继承一个基类,但可以继承任意接口。声明实现接口的类时,需要在基类列表中包含类所实现的接口的名称。
例1
创建一个控制台应用程序,该程序在例1 的基础上实现,Program 类继承自接口 ImyInterface,并实现了该接口中的所有属性和方法。然后在 Main 方法中实例化 Program 类的一个对象,并使用该对象实例化 ImyInterface 接口。最后通过实例化的接口对象访问派生类中的属性和方法。 代码如下:
class Program:ImyInterface //继承自接口
{
string id ="";
string name ="";
public string ID //编号
{
get
{
return id;
}
set
{
id = value;
}
}
public string Name //姓名
{
get
{
return name;
}
set
{
name = value;
}
}
public void ShowInfo() //显示定义的编号和姓名
{
Console.WriteLine(("编号\t 姓名");
Console.WriteLine(ID+"\t"+Name);
}
static void Main(string[] args)
{
Program program = new Program(); //实例化 Program 类对象
ImyInterface imyinterface = program; //使用派生类对象实例化接口 ImyInterface
imyinterface.ID="TM"; //为派生类中的ID属性赋值
imyinterface.Name="C# 3.5 从入门到应用开发"; //为派生类中的 Name 属性赋值
}
}
按 Ctrl+F5 键查看运行结果,如图1 所示。
图1 接口的实现实例运行结果
上面的实例中只继承了一个接口,接口还可以多重继承,用多重继承时,要继承的接口之间用逗号(,)分隔。
例2
创建一个控制台应用程序,其中声明 3个接口、IPeopleI、ITeacher 和 IStudent,其中,ITeacher 和 IStudent 继承自IPeople。然后使用Program类继承这3个接口,并分别实现这3个接口中的属性和方法。代码如下:
interface IPeople
{
string Name //姓名
{
get;
set;
}
string Sex //性别
{
get;
set;
}
}
interface ITeacher:IPeople //继承公共接口
{
void teach(); //教学方法
}
interface IStudent:IPeople //继承公共接口
{
void study(); //学习方法
}
class Program:IPeople,ITeacher,IStudent //多接口继承
{
string name = "";
string sex = "";
public string Name //姓名
{
get
{
return name;
}
set
{
name = value;
}
}
public string Sex //性别
{
get
{
return sex;
}
set
{
sex = value;
}
}
public void teach() //教学方法
{
Console.WriteLine(Name +""+ Sex+"教师");
}
public void study() //学习方法
{
Console.WriteLine(Name +""+Sex +"学生");
}
static void Main(string[] args)
{
Program program = new Program(); //实例化类对象
ITeacher iteacher = program; //使用派生类对象实例化接口 ITeacher
iteacher.Name ="TM";
iteacher.Sex ="男";
iteacher.teach();
IStudent istudent = program //使用派生类对象实例化接口 IStudent
istudent.Name ="C#";
istudent.Sex ="男";
istudent.study();
}
}
interface IPeople{ string Name //姓名 { get; set; } string Sex //性别 { get; set; }}interface ITeacher:IPeople //继承公共接口 { void teach(); //教学方法 }interface IStudent:IPeople //继承公共接口 { void study(); //学习方法 }class Program:IPeople,ITeacher,IStudent //多接口继承 { string name = ""; string sex = ""; public string Name //姓名 { get { return name; } set { name = value; } } public string Sex //性别 { get { return sex; } set { sex = value; } } public void teach() //教学方法 { Console.WriteLine(Name +""+ Sex+"教师"); } public void study() //学习方法 { Console.WriteLine(Name +""+Sex +"学生"); } static void Main(string[] args) { Program program = new Program(); //实例化类对象 ITeacher iteacher = program; //使用派生类对象实例化接口 ITeacher iteacher.Name ="TM"; iteacher.Sex ="男"; iteacher.teach(); IStudent istudent = program //使用派生类对象实例化接口 IStudent istudent.Name ="C#"; istudent.Sex ="男"; istudent.study(); } }
按 Ctrl+F5 键查看运行结果,如图2 所示。
图2 接口的实现实例运行结果
- END -