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

C#接口和抽象類:Interface、abstract

編輯:C#入門知識

一、接口

接口是C#中很常見的工具,概念什麼的就不說了,這裡講幾個值得注意的小地方:

1、接口內部只能有函數、屬性和事件的聲明:

interface IParent
{
    void Show();
    string Type
    {
        get;
        set;
    }
    event AddChildren Add;
}

在接口中聲明的成員都不需要訪問修飾符(public,private等),因為接口成員的權限默認都是public,另外值得注意的是接口中之所以能夠聲明事件是因為事件就是委托的特殊屬性。

接口不能是靜態的,接口成員也只能聲明為實例成員不能聲明為靜態成員,如下聲明就是錯誤的:

static interface IParent
    {
        static void Show();
        string Type
        {
            get;
            set;
        }
        event AddChildren Add;
    }

你會得到提示:

錯誤 1 修飾符“static”對該項無效 C:Documents and SettingsHMD桌面\CLR_ExciseCLR_ExciseLib.cs 10 22 CLR_Excise

原因是如果接口是靜態的就無法被繼承,靜態成員也無法被接口直接訪問(因為接口中的成員都還沒有實體只是聲明)所以定義在接口中無意義。

 

 

2、接口支持部分聲明:

上面的接口實際上可以在一個命名空間裡聲明為3部分:

partial interface IParent
    {
        void Show();
    }

    partial interface IParent
    {
        string Type
        {
            get;
            set;
        }
    }

    partial interface IParent
    {
        event AddChildren Add;
    }

上面這種部分接口的聲明方式和聲明為一個接口的效果完全相同,若要了解部分關鍵字partial請查看:C#裡partial關鍵字的作用(轉摘)

 

3、接口的實現:

接口成員的實現方式分為兩種:

<1>隱式實現:

class ChildrenA : IParent
        {

            #region IParent 成員

            public void Show()
            {
                throw new NotImplementedException();
            }


            public string Type
            {
                get
                {
                    throw new NotImplementedException();
                }
                set

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