接口隱式實現: 接口
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();
顯示接口實現與隱式接口實現的適應場景
一、當類實現一個接口時,一般使用隱式接口實現,這樣能夠方便的訪問接口方法和類自身具備的方法和屬性。
二、當類實現多個接口時,而且接口中包含相同的方法簽名,此時使用顯式接口實現。即便沒有相同的方法簽名,仍推薦使用顯式接口,由於能夠標識出哪一個方法屬於哪一個接口。
三、隱式接口實現,類和接口均可訪問接口中方法。顯式接口實現,只能經過接口訪問。