如果一个类调用多个接口,且多个接口中有同名的函数,我们知道,如果类要继承一个接口,就必须要实现接口中的所有函数,怎么办?
C#的处理原则是:
在类中要分别实现每个接口及其函数,函数名前要加上接口的名称(前面的访问修饰符不用加,因为都是public).在调用此类中函数时,要把类别成对应的接口再调用接口对应的函数。
如下代码图:
1.两个接口
如下代码图:
public interface inter1
{
void setname(string sname);
string getname();
}
public interface inter2
{
void setname(string sname);
string getname();
}
2.创建类并实现以上两个接口
复制代码
public class Myclass : Object, inter1, inter2
{
private string name="";
void inter1.setname(string sname)
{
MessageBox.Show("Set inter1 name");
name = sname;
}
void inter2.setname(string sname)
{
MessageBox.Show("Set inter2 name");
name = sname;
}
string inter1.getname()
{
MessageBox.Show("Get inter1 name");
return name;
}
string inter2.getname()
{
MessageBox.Show("Get inter2 name");
return name;
}
}
复制代码
3.调用以上类的相关函数
复制代码
private void button1_Click(object sender, EventArgs e)
{
Myclass myclass=new Myclass();
inter1 i1 = (inter1)myclass;//强制类型转换
i1.setname("vvv");
inter2 i2 = (inter2)myclass;//强制类型转换
i2.getname();
}
复制代码