程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Interface/接口,interface接口

Interface/接口,interface接口

編輯:關於.NET

Interface/接口,interface接口


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訪問器
        }
    }

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved