淺談 接口

接口:

先看下面一段話:

       如果,你即將準備開始編程,就是那種 感覺需要很多很多類,而其中有些類,你已經提前知道需要哪些共同的功能。怎麼辦?當然首先想到,提前給他們規定好一種模式,規定他們是什麼樣的方法,有返回值,還是無返回值,返回啥種類型,等等的規定。

接口,就是可以幫助你的。接口,只是一種規範,一種約束。

 

概念:接口,是把方法都組合起來,以封裝特定功能的集合。

注意:

    1.一旦類實現了接口,類就可以支持接口所指定的所有屬性和成員。

   2.聲明接口在語法上與聲明抽象類完全相同,但是不允許接口中有任何成員的具體實現。所以,接口是不能實例化的。不能有構造方法和字段。

   3.不能有修飾符,如public,private,不能聲明虛擬的,或者靜態的。

   4.實現接口的類必須實現接口中所有的方法。(類似於抽象類中的抽象方法必須要全部實現)。

   5.一個類可以支持實現多個接口,多個類也可以支持相同接口。

   6.接口的命名,前面要加一個大寫的"I".

 

用法:

   接口用interface聲明,不能用class,接口名稱前面要加,"I",接口中的屬性或方法不能有修飾符,方法或方法體。

 

代碼示例:      

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  interface IPlay
    {
      //  int _id; 這種情況是錯誤的,因爲接口中不能有字段
         int Num //這種情況是正確的,因爲這是屬性,屬性的本質是兩個方法組成(get,set)。
        {
            getset;
        }
         void PlayGame();//只要定義,實現該接口的類必須要實現該方法
        void  PlayBasketball();
    }
 
    interface IEat
    {
        void EatFruit();
 
    }
    class Man:IPlay,IEat //一個類可以實現多個接口,並用逗號隔開,還可以繼承類,但是隻能一個,可以自己試試。
    {
        public int Num //屬性也是要實現的,因爲他就是方法嘛,字段的話就不可以。你可以試試。
        {
            getset;//這邊是簡寫了,不清楚屬性的可以去查查屬性是啥,再強調一遍,這就是兩個方法
        }
       public void PlayGame()
        {
            Console.WriteLine("I can PlayGame");
        }
 
        public void PlayBasketball()
        {
            Console.WriteLine("I can Play BasketBall");
        }
 
        public void EatFruit()
        {
            Console.WriteLine("I Can Eat Fruit");
        }
    }
 
 
-------
  static void Main(string[] args)
        {
            Man m = new Man();
            m.EatFruit();
            m.Num = 2;
            m.PlayBasketball();
            m.PlayGame();
            Console.Read();
        }

  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章