C# 接口的隱式與顯示實現

接口隱式實現: 接口

interface IAnimal
{
  void Dog();
}
class Animal:IAnimal
{
  public void Dog()
  {
    Console.WriteLine("dog...");
  }
 }it

經過類調用class

Animal animal = new Animal();
animal.Dog();方法

或者經過類調用im

IAnimalanimal = new Animal();
animal.Dog();類型轉換

 

接口顯示實現:new

interface IAnimal
{
  void Dog();
}interface

class Animal:IAnimal
{
  void IAnimal.Dog()
  {
    Console.WriteLine("dog...");
  }
}void

只能經過接口調用

IAnimal animal = new Animal();

animal.Dog();

用類的方法去實現時會報錯,不容許,「顯示接口實現」只容許接口實現。若是真想用類來實現呢,那必需要進行一下強制類型轉換。

Animal animal = new Animal();
(animal as IAnimal).Dog();

 

顯示接口實現與隱式接口實現的適應場景

一、當類實現一個接口時,一般使用隱式接口實現,這樣能夠方便的訪問接口方法和類自身具備的方法和屬性。

二、當類實現多個接口時,而且接口中包含相同的方法簽名,此時使用顯式接口實現。即便沒有相同的方法簽名,仍推薦使用顯式接口,由於能夠標識出哪一個方法屬於哪一個接口。

三、隱式接口實現,類和接口均可訪問接口中方法。顯式接口實現,只能經過接口訪問。

相關文章
相關標籤/搜索