多个接口出现同名函数的处理(C#,Delphi)
如果一个类调用多个接口,且多个接口中有同名的函数,我们知道,如果类要继承一个接口,就必须要实现接口中的所有函数,怎么办?
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(); } 复制代码