C# 接口應用及意義


 

寫在前面:新手入行,讀者勉強看看吧,寫的不對的歡迎討論,板磚輕拍!

一.定義

  接口描述的是可屬於任何類或結構的一組相關功能,所以實現接口的類或結構必須實現接口定義中指定的接口成員。

  通常用Interface關鍵字進行定義。

  接口內部只包含方法名,屬性等,不含任何訪問修飾符。

二.疑問

  很多像筆者這樣的新手在看到接口的定義及作用后都會產生疑問:接口內部方法只有方法名我們何必去繼承這個接口呢?完全可以在應用方法的類里寫一個方法調用嘛,何必多此一舉呢?

每個繼承的類的方法內部代碼依然也是不一樣,繼承時如果不寫全繼承的方法還會報錯,還不如每個類自己寫個方法解決呢。

  這個問題讓我整整找了一天的答案,如下是筆者見解。

三.代碼實例

   做個和銀行存取款相關的實例,有這樣三個銀行:建行,工行,農行,有個公民同時有這三個銀行的賬號。

   先建個接口IBank

復制代碼
 public interface IBank
    {
        string Name { get; set; }
        int Count { get; set; }
        int InMoney(int money);
        int OutMoney(int money);
    }
復制代碼

   然后分別建立三個銀行的類,繼承自IBank

復制代碼
class ICBCBank:IBank
    {
        private string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private int count;
        public int Count
        {
            get { return count; }
            set { count = value; }
        }
        public int InMoney(int money)
        {
            count += money;
            return count;
        }
        public int OutMoney(int money)
        {
            count -= money;
            return count;

        }
    }
復制代碼

  其他兩個類似這個,就不寫了。內部包含Name和Count兩個屬性與InMoney,OutMoney兩個存取錢方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            IBank banker;
            banker =  new  ICBCBank { Name =  "ICBCBank" , Count = 100 };
            DrawMoney(banker);
            banker =  new  CCBBank { Name =  "CCBBank" , Count = 200 };
            DrawMoney(banker);
            banker =  new  ABCBank { Name =  "ABCBank" , Count = 300 };
            DrawMoney(banker);
 
 
 
private  void  DrawMoney(IBank banker)
        {
            banker.OutMoney(10);
            text01.Text+=banker.Name+ "  " + banker.Count.ToString()+ "\n" ;
        }  

  通過接口建立banker,該公民具有三個銀行的賬戶,每次只要將其轉換到某一銀行去之后,即可對其在該銀行內的賬戶進行取錢動作。

  在下面DrawMoney動作中,傳入參數類型為IBook,可以傳入任何銀行的參數,大大方便的操作處理。

  假如該公民再有其他銀行賬戶時,增加該銀行類,繼承IBank即可,改動很小。

 

四.實例下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM