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人开发,而他们共同做的内容是抓取视频,那么就可以定义一个视频的接口,每一个类都必须实现这个抓取视频的方法,而后面新来的程序员,或其他平台,都继承这个接口,并且都要实现方法,这样就很好的规范了代码的编写
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律