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

什么是接口

接口在程序中起到规范代码的作用,例如:电脑的USB接口,CameraLink接口,Type-C接口

接口的特点

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

接口写法

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

定义接口

1     internal interface IJiao //接口名
2     {
3         void Jiao();//默认是public 不能修改 不能有方法体{}
4     }

继承接口

复制代码
 1     internal class ClassDog : IJiao,IChi
 2     {
 3         //必须实现接口的方法
 4         public void Chi()
 5         {
 6             Console.WriteLine("舌头卷着吃");
 7         }
 8 
 9         public void Jiao()
10         {
11             Console.WriteLine("汪汪汪 wangwangwang");
12         }
13     }
复制代码

使用接口

1         static void Main(string[] args)
2         {
3             ClassDog dog = new ClassDog();
4             dog.Jiao();
5             dog.Chi();
6             Console.ReadKey();       
7         }

 运行结果

 

 接口的多继承

  • 类只能单继承,而接口可以多继承,多个接口使用" , " 号分割
  • 也可以继承一个类然后再继承多个接口
  • 如果类和接口需要一起继承,那么必须把 父类 放在第一位,后面的接口可以不分顺序

 接口显示调用

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

复制代码
 1     internal class ClassDog : IJiao,IChi
 2     {
 3         //必须实现接口的方法
 4         public void Chi()
 5         {
 6             Console.WriteLine("舌头卷着吃");
 7         }
 8 
 9         public void Jiao()
10         {
11             Console.WriteLine(" 自带的  汪汪汪 wangwangwang");
12         }
13         void IJiao.Jiao() 
14         {
15             Console.WriteLine("实现接口 wanwanwan");
16         }
17     }
复制代码
复制代码
1         static void Main(string[] args)
2         {
3             ClassDog dog = new ClassDog(); //使用自己的方法
4             dog.Jiao();
5             dog.Chi();
6             IJiao dog2 = new ClassDog(); //使用接口的方法
7             dog2.Jiao();    
8             Console.ReadKey();    
9         }
//需要注意的是,不能添加访问修饰符,默认即public
复制代码

运行结果

什么情况使用接口

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

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

 

posted @   Zhongxingxing  阅读(672)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示