1. 類和結構能夠實現接口
2. 接口聲明包含如下四種類型:屬性、方法、事件和索引;這些函數聲明不能包含任何實現代碼,而在每一個成員的主體後必須使用分號
3. 繼承接口的類或結構必須實現接口中的所有成員
4. 顯示接口的實現注意下面的代碼
class Program { static void Main(string[] args) { SampleClass_1 sc = new SampleClass_1(); IControl ctr1 = (IControl)sc; ISurface srfc = (ISurface)sc; // 調用一樣的方法,繼承 sc.Paint(); ctr1.Paint(); srfc.Paint(); Console.WriteLine(); //顯式接口實現 SampleClass_2 obj = new SampleClass_2(); IControl c = (IControl)obj; ISurface s = (ISurface)obj; obj.Paint(); c.Paint(); s.Paint(); Console.ReadKey(); } } public interface IControl // 接口可以有訪問修飾符 { void Paint(); //成員不允許有任何訪問修飾符,默認public int P { get; } } public interface ISurface { void Paint(); } class SampleClass_1:IControl,ISurface { //IControl.Paint和ISurface.Paint都會調用這個方法 public void Paint() { Console.WriteLine("Paint method in SampleClass"); } private int _value=10; public int P { get { return _value; } set { _value = value; } //可以添加set訪問器 } } class SampleClass_2:IControl ,ISurface { //顯式接口實現 void IControl.Paint() //這時候不能加訪問修飾符public, 要完全和接口定義一致 { Console.WriteLine("IControl.Paint"); } void ISurface.Paint() { Console.WriteLine("ISurface.Paint"); } public void Paint() { Console.WriteLine("SampleClass_2.Paint"); } private int _value=10; int IControl.P { get { return _value; } //set { }顯式接口必須和接口定義完全一致,不能任意添加set訪問器 } }