• C# 类实现接口(Interface) 多态 多继承


    什么是接口

    接口在程序中起到规范代码的作用,例如:电脑的USB接口,这些都是已经定义好的了,制造鼠标键盘U盘等厂家就按这种规格做出来的成品在任何电脑上都可以直接使用,而不需要进行适配,这就是规范的使用了接口


    接口的特点

    • 类之间的继承关系仅支持单重继承,使用进口可以多继承
    • 一个类可以实现继承很多接口
    • 接口不能有方法体
    • 接口的访问修饰符 只能是 public
    • 使用接口,必须实现类的方法
    • 接口不能实例化成对象
    • 接口不能继承类

    接口写法

    通常是以 I 开头,再加上其他的单词构成

    定义接口

     interface  ITest //接口名
    {
        void Dog();
        //默认是public 不能修改 不能有方法体
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    继承接口

    public class Zoo : ITest 
    {
    public void Dog()
            {
    //类必须实现接口的方法
                Console.WriteLine("汪汪汪");
            }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    使用接口

     InterfaceTest f = new Test();
      f.Dog();
      //接口不能实例化
    
    • 1
    • 2
    • 3

    运行结果:

    汪汪汪


    接口的多继承

    类只能单继承,而接口可以多继承,多个接口使用" , " 号分割

      internal interface ICar
        {
            void Do();
          
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
     internal interface InterfaceTest
        {
            void Dog();
        }
    
    • 1
    • 2
    • 3
    • 4
     public class Test : InterfaceTest, ICar
        {
    
            public void Dog()
            {
           
                Console.WriteLine("InterfaceTest接口");
            }
    
           public void   Do()
            {
              Console.WriteLine("我是Cre接口");
            }
      
    
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    也可以继承一个类然后再继承多个接口

    如果类和接口需要一起继承,那么必须把 父类 放在第一位,后面的接口可以不分顺序

      public class Test : 类名,接口,接口,接口
        {
        } 
    
    • 1
    • 2
    • 3

    接口显示调用

    假如Zoo类中有一个方法叫Dog ,而接口中有一个方法也叫Dog,这样在实现接口时候就会报错,因为两个方法重名了,这时候就可以使用接口显示的写法了

     public class Test : InterfaceTest
        {
    
            public void Dog()
            {
           
                Console.WriteLine("类自带的方法");
            }
    
             void InterfaceTest.Dog()
            {
                
                Console.WriteLine("实现接口的方法");
            }
    
    
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    需要注意的是,不能添加访问修饰符,默认即public

     InterfaceTest f = new Test();
                f.Dog();//使用接口
    
                Test t = new Test();
                t.Dog();//使用自己的
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    实现接口的方法
    类自带的方法


    什么情况使用接口

    使用接口可以很好的规范代码的写法,如果有多个人开发一个程序,需要创建很多类,而类做的事又很相似,那么就可以定义一个接口来规范,同时也让程序更好的扩展

    例:最近有一个程序需要抓取各个视频平台的视频,抖Y K手…等等各大视频平台还有部分作者的头像信息…主页信息等,每一个视频平台都创建了一个类,共有5人开发,而他们共同做的内容是抓取视频,那么就可以定义一个视频的接口,每一个类都必须实现这个抓取视频的方法,而后面新来的程序员,或其他平台,都继承这个接口,并且都要实现方法,这样就很好的规范了代码的编写。

  • 相关阅读:
    如何理解相机标定?
    LeetCode每日两题02:轮转数组 (均1200道)
    @ApiModel 和 @ApiModelProperty
    python提取date的月份和天数
    ImageJ软件
    html+css制作3D七夕表白旋转相册特效
    3d激光SLAM:LIO-SAM框架---IMU预积分功能数据初始化
    vue中动态设置source标签
    交换机和路由器技术-27-OSPF路由重分发
    灰鸽子木马特征值免杀
  • 原文地址:https://blog.csdn.net/dpc5201314/article/details/127948427