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两个存取钱方法。

            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即可,改动很小。

时间: 2024-10-19 21:33:40

C# 接口应用及意义的相关文章

面试题:Java中对象序列化接口(Serializable)的意义

Serializable接口是一个里面什么都没有的接口 它的源代码是public interface Serializable{},即什么都没有. 如果一个接口里面什么内容都没有,那么这个接口是一个标识接口,比如,一个学生遇到一个问题,排错排了几天也没解决,此时,她举手了(示意我去帮他解决),然后我过去,帮他解决了,那么这个举手其实就是一个标识,自己不能解决的问题标示我去帮他解决,在Java中的这个Serializable接口是给JVM看的,告诉JVM,我不做这个类的序列化了,你(JVM)给我序

接口的意义

老生长谈了,接口到底有什么用 //接口存在的意义://1.多个 实现类 拥有同样的方法的时候 用接口会减少代码量//2.以后需要增加一个方法 的时候,直接在接口里面写,继承该接口的实现类会告诉你要新增方法.//3.接口相当于一个规范,//(a)个人开发时,你自己写接口,自己写实实现类,那么就没必要写接口了.//(b)团队开发,我写了接口,我突然有事离开,你来写实现类,你看了接口就知道要写哪些了.这个时候就很有必要了.

微信公众平台开放 9 大高级接口,它有什么意义?

微信刚刚更新公众平台,向服务号开放微信认证,开放 9 大高级接口,增加开发者问答系统,并对微信公众平台的后台管理界面进行改版. 其中最受关注的是微信向开发者开放的九大高级接口.这些接口为: 语音识别接口 客服接口 OAuth2.0 网页授权接口 生成带参数的二维码接口 获取用户地理位置接口 获取用户基本信息接口 获取关注者列表接口 用户分组接口 上传下载多媒体文件接口 上图中,微信官方对九大接口作了详细的介绍.我们一起来看看微信开放这些接口有什么意义. 1. 语音识别 描述:通过语音识别接口,用

Java接口和抽象类以及接口的意义

接口interface: 1. 在接口中没有变量,成员无论如何定义,都是公共常量,public static final即使不显式声明也如此. 2. 所有接口方法均隐含public abstract即使不显式声明也如此.(因而也不能使用protected和private修饰,不加修饰也不是默认权限) 3. 接口可以继承其他接口但是不能继承类,不能设计父接口中的方法,不能实现别的接口. 4. 任何类都可以引用接口,并对其中的方法进行自类中的实现. 抽象类abstract class: 1. 变量和

java 接口的作用和好处

1.java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2.一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意义很疑惑.不知道接口到底是有什么作用,为什么要定义接口. 好像定义接口是提前做了个多余的工作.下面我给大家总结了4点关于JAVA中接口存在的意义: 1.重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Jav

怎样设计接口?

怎样设计接口? 众所周知,接口是提供给其它模块或者系统使用的一种约定或者规范.因此接口必需要保证足够的稳定性和易用性.这是设计接口的基本要求. 1.稳定性 接口必须相对稳定,否则将导致接口的使用者和提供者为了适应新接口而不断改动接口的实现,可能反复进行无用功,严重时影响整个软件开发进度.那么怎样保证设计的接口相对稳定呢?    首先,接口的语义必须明白.包含接口调用方法.接口名称.參数的类型和名称.抽象的接口名称或者參数名称使人困惑或者理解错误.例如以下例:    History::SetAtt

Java基础之抽象类和接口

抽象类和接口 一.抽象类和抽象方法 对于抽象类,首先需要介绍抽象方法,而抽象类因抽象方法的存在而存在 1.抽象方法 (1)必要性: 有些父类方法不确定如何写方法体,但是对于继承它的子类又必须用到这个方法.需要用到抽象方法 例如:对于动物类,我们知道父类“动物”会叫,但是因为不同的动物叫的方法不同,而对于子类”狗“这个子类又必须用到“叫”这个方法.因此对于父类“动物”的“叫”方法不知道怎么去写.这里就用到抽象方法. 代码示例: 1 //抽象类讲解 2 public class test抽象类 {

面向接口设计和编程——(面向对象、面向接口、面向过程、面向实现) --转载

引言--面向接口所处的设计模式中的位置. 其实,我认为Java/C#比C++高级的其中一个原因是,它对面向接口编程的支持.不要误解,并不是说C++不支持面向接口编程,而是说C++的语法中没有这种天然的机制. 面向对象之于面向过程,面向接口之于面向实现.但基本上,面向接口和面向实现都基于面向对象的模式,也就是说面向接口并不能称为比面向对象的更高的一种编程模式.而是在面向对象中大的背景下的一种更加合理的软件设计模式,它增强了类与类之间,模块与模块的之间的低耦合性,是软件系统更容易维护.扩展. 不管是

Java中抽象类和接口的区别(读书笔记)

Java的抽象类和接口 抽象类和接口是两个容易混淆的概念,但有一句话能很好地将这两者区分开来,即抽象类是事物的抽象,而接口是行为的抽象.抽象类抽象出来的是一类事物,事物中包含了一些固有的属性和行为,而接口更多的是提供固有属性行为之外的延伸行为.打个比方,可以把动物看成为抽象类,类中有一些固有属性,如身高体重,还有一些共有行为,如吃饭和睡觉,所有的动物都遵循着这些属性和行为.除此之外,有些动物还能飞,但并不是所有的动物都具有飞行这种能力,此时飞行只是事物的延伸功能,相当于一个接口. 一.抽象类 抽