**
C# 是一门 单继承 多接口 来实现多态的语言
**
**
实现接口:
**
namespace Interface
{
interface Ilisttable
{
string[] Table
{
get;
}
void func(int a,int b);
}
class Stu :Ilisttable
{
private string ID { get; set; }
private string Name { get; set; }
private string Major { get; set; }
public Stu(string id , string name , string major)
{
this.ID = id;
this.Name = name;
this.Major = major;
}
public string[] Table
{
get
{
return new string[]
{
this.ID,
this.Name,
this.Major
};
}
}
//隐式实现
public string[] function1
{
get {
return new string[] { " 1", " 2" };
}
}
//显示实现接口
void Ilisttable.func(int c, int d)
{
Console.WriteLine(c + d);
}
}
class Program
{
static void Main(string[] args)
{
Stu s1 = new Stu("123", "憨憨", "睡觉");
string[] Array = s1.Table;
(s1 as Ilisttable).func(1, 2);
foreach (var item in Array)
{
Console.WriteLine(item);
}
for(int i =0;i<3; i++)
{
Console.WriteLine(Array[i]);
}
Console.ReadKey();
}
}
}
注意点:
1.只要public该接口方法,并且签名相同就隐式的实现了接口。
2.显示的实现要 写成 接口名.方法名 的格式。
3.若隐式实现了接口则可以用类名或者接口名实例化对象。
但是如果显示的实现了接口方法,则用类名实例化的对象调用显示实现的接口方法时,则要类型转换一下。此处为(Stu as IListtavble).func(1,2);