接口

接口

什么是接口

应用接口之后,程序的可扩展性、可维护性会大大增强

接口的定义和实现

接口的定义类似于USB,主要作用是提供一个电源头

接口的实现类似于U盘或者USB线鼠标或者USB线键盘等等,主要作用是接口功能的体现

接口定义规范

  1. 使用关键字interface定义,接口类名通常使用“I”开头

  2. 接口中的属性、方法等,只是做一个声明,而没有任何实现

  3. 接口中的属性、方法等,默认都是public,不需要“画蛇添足”

接口的实践

问题:打印机对象:打印、复印、传真。市场流行的打印机:HP/SONY......

  1. 实现打印机接口

       
     /// <summary>
        /// 多功能打印机接口
        /// </summary>
        public interface IMultiPrinter
        {
            /// <summary>
            /// 打印功能
            /// </summary>
            /// <param name="contents"></param>
            void Print(string contents);
            /// <summary>
            /// 复印功能
            /// </summary>
            /// <param name="contents"></param>
            void Copy(string contents);
            /// <summary>
            /// 传真功能
            /// </summary>
            /// <param name="contents"></param>
            void Fax(string contents);
        }

     

  2. 在具体对象中实现接口所提出的功能

       
     class HPMultiPrinter : IMultiPrinter
        {
            public void Copy(string contents)
            {
                Console.WriteLine("惠普复印:"+contents);
            }
    ​
            public void Fax(string contents)
            {
                Console.WriteLine("惠普传真:" + contents);
            }
    ​
            public void Print(string contents)
            {
                Console.WriteLine("惠普打印:" + contents);
            }
        }

     

接口的特点

  1. 接口具有强制性,实现接口的类必须实现接口的所有成员

  2. 一个类既可以实现多个接口,也可以同时继承其他的类,前提是一般将继承的父类写在接口之前

  3. 类继承了多少个接口(间接继承、直接继承),对所有的接口都要进行实现

    间接继承:A接口->B接口->C类

    直接继承:A接口->C类,B接口->C类

接口的实践应用

  1. 接口提高团队成员并行开发项目的效率

    1. 接口的使用者只需要考虑接口的应用功能,而不用考虑接口的实现细节

    2. 接口的实现者只关心如何实现接口内部的细节,而不用考虑谁使用

  2. 接口能够提高系统的可维护性

    当用户的需求改变时,只需要修改接口的实现,系统即可完成更新

接口的应用总结

  1. 接口的应用场合

    1. 如果某一个功能点需求变化比较多,应使用接口保证系统的可维护性

    2. 如果想实现团队成员的并行开发,可以使用接口来规范对象的使用

  2. 接口编写规范

    1. 接口成员只能是一个声明

    2. 实现接口的类必须全部实现接口中规定的属性、方法

  3. 特别说明

    接口的使用不是必须的,要根据用户的需求来决定

接口实现多态

继承多态实现的条件

  1. 父类中必须有抽象方法或者虚拟方法

  2. 子类必须重写父类中的抽象方法或者虚方法

  3. 子类对象必须转换成父类去使用

接口多态实现的条件

  1. 一个接口必须被两个或两个以上类实现

  2. 接口实现类必须转成接口类型去使用

接口和抽象

 抽象类接口
不同点用abstract定义用interface定义
 只能被继承一个可以实现多个接口被继承
 非抽象派生类必须实现抽象方法实现接口的类必须实现所有的成员
 需要使用override实现抽象方法直接实现
   
相似点都不能直接实例化 
 都包含未实现的方法 
 子类或“接口实现类”必须实现未实现的方法 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值