c#接口显示实现和隐示实现

 

 

//定义接口IA

//可加的修饰符有internal和public

public interface IA
{

       //方法不能加修饰符,默认public
  void Method();
}

//定义接口IB并实现IA

public interface IB : IA
{

  //这里的方法是重写IA里面的方法,也可以不写。

  //接口实现接口时可不用实现其方法。
  new void Method();
}

 

1.显示实现接口IB

public class IClass : IB
{

     //从接口显示实现的函数不能加修饰符

  void IA.Method()
  {
  Console.WriteLine("This Method in IA!");
  }

  void IB.Method()
  {
  Console.WriteLine("This Method in IB!");
  }
}

显示实现接口的调用必须使用接口来接收调用

static void Main(string[] args)

{
  IA a = new IClass();
  a.Method();
  IB b = new IClass();
  b.Method();
  Console.Read();
}

2.隐示实现接口IB

public class IClass : IB
{

  //必须加修饰符且只能是public
  public void Method()
  {
  Console.WriteLine("隐式实现接口");
  }
}

隐示实现接口的调用即可使用接口也可使用类来接收调用

static void Main(string[] args)
{
  IA a = new IClass();
  a.Method();
  IB b = new IClass();
  b.Method();
  IClass c = new IClass();
  c.Method();
  Console.Read();
}

总结:

1.当类实现一个接口时,通常使用隐式接口实现,这样可以方便的访问接口方法和类自身具有的方法和属性。

2.当类实现多个接口时,并且接口中包含相同的方法签名,此时使用显式接口实现。即使没有相同的方法签名,仍推荐使用显式接口,因为可以标识出哪个方法属于哪个接口。

3.隐式接口实现,类和接口都可访问接口中方法。显式接口实现,只能通过接口访问。

4.隐式接口实现函数必须加修饰符且只能是public,显示接口实现函数不能加修饰符。

posted @ 2020-06-20 16:45  张小宇  阅读(7)  评论(0)    收藏  举报