创建使用继承接口实现的第三个接口c#

时间:2017-05-22 06:51:27

标签: c# inheritance interface

我有2个接口,你可以看到:

public interface i1
{
 void add(news a);
}

public interface i2
{
void add(file f);
}

这两个接口有自己的实现。我想创建另一个名为i3的接口,它继承i1和i2并使用它们的实现?我该怎么做?

public interface i3:i1,i2
{

}

实际上我想使用i2,i1实现在i3中获取所有方法。因为i3的实现方法是相同的。

2 个答案:

答案 0 :(得分:2)

我不理解你的问题,但这正确编译

public interface I1
{
    int One { get; set; }
}

public interface I2
{
    int Two { get; set; }
}

public interface I3 : I1, I2
{
    int Three { get; set; }
}

// Implementation of I3 (which inherits I1 and I2)
public class Foo : I3
{
    public int One { get; set; }
    public int Two { get; set; }
    public int Three { get; set; }
}

答案 1 :(得分:1)

接口用于声明而不是实现。相反,你应该在i3中声明你想要的任何东西并继承你的所有接口

public interface i1
{
  int Add(int num1, num2);
}

public interface i2
{
 int Multiply(int num1, num2);
}

public interface i3
{
 int Divide(int num1, num2);
}

public class Mathematics: i1, i2, i3
{
  public int Add(int num1, int num2)
 {
   //Your implementation
 } 
 public int Multiply(int num1, int num2)
 {
   //Your implementation
 } 

 public int Divide(int num1, int num2)
 {
   //Your implementation
 }  
}

如果按界面继承接口本身就像

那样

ICollection<T>

接口是否可以继承类继承接口。

public interface i1
{
  int Add(int num1, int num2);
}

public interface i2 
{
 int Multiply(int num1, num2);
}

public interface i3 : i1, i2
{
  int Divide(int num1, int num2);
}

public class Mathematics:  i3
{
  public int Add(int num1, int num2)
 {
   //Your implementation
 } 
 public int Multiply(int num1, int num2)
 {
   //Your implementation
 } 

 public int Divide(int num1, int num2)
 {
   //Your implementation
 }  
}

因此,当您在类中继承i3时,您将获得在i1,i2和i3中声明的所有内容。虽然继承i1将仅为i2提供类似i1的成员。