zoukankan      html  css  js  c++  java
  • 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()+" ";
           }  

      通过接口建立banker,该公民具有三个银行的账户,每次只要将其转换到某一银行去之后,即可对其在该银行内的账户进行取钱动作。

      在下面DrawMoney动作中,传入参数类型为IBook,可以传入任何银行的参数,大大方便的操作处理。

      假如该公民再有其他银行账户时,增加该银行类,继承IBank即可,改动很小。

    四.实例下载

  • 相关阅读:
    OK335xS-Android mkmmc-android-ubifs.sh hacking
    OK335xS-Android pack-ubi-256M.sh hacking
    OK335xS Ubuntu 12.04.1 版本 Android 开发环境搭建
    Qt Quick Hello World hacking
    Qt QML referenceexamples attached Demo hacking
    QT 5.4.1 for Android Ubuntu QtWebView Demo
    I.MX6 working note for high efficiency
    QT 5.4.1 for Android Windows环境搭建
    mkbootimg hacking
    Generate And Play A Tone In Android hacking
  • 原文地址:https://www.cnblogs.com/xiaowie/p/9304323.html
Copyright © 2011-2022 走看看