当前位置: 首页 > news >正文

c# 接口

c#接口

namespace demo1
{/// <summary>/// 接口使用interface关键字进行定义/// 接口中只能声明方法不能定义,也就是说声明的方法不能有方法体。/// 接口不能包含常量、字段、运算符、实例构造函数、析构函数或类型,不能包含静态成员。由于不能有字段,所以属性经常被写做自动属性。/// 接口成员都是自动公开的,且不能包含任何访问修饰符/// 接口类似于抽象基类,不能直接实例化接口;接口中的方法都是抽象方法,实现接口的任何非抽象类型都必须实现接口的所有成员/// /// </summary>/// interface ImyInterface1  //实现一个接口{int add();}interface ImyInterface2{int add();}class myclass:ImyInterface1,ImyInterface2  //继承接口,接口不可以实例化{int ImyInterface1.add() //显式接口的定义{int a = 1;int b = 2;Console.WriteLine("这是接口1");return a + b;}int ImyInterface2.add(){int a = 1;int b = 2;int c = 3;Console.WriteLine("这是接口2");return a + b+c;}}internal class Program{static void Main(string[] args){myclass a= new myclass(); //实例化对象,该类继承了接口ImyInterface1 b = a;  //使用继承接口类的对象实例化接口Console.WriteLine(b.add());//使用接口对象调用接口1 的方法ImyInterface2 c = a;Console.WriteLine(c.add()); }}
}
namespace demo1
{/// <summary>/// 接口继承和类继承不同/// 类继承不仅是说明继承,同时也是实现继承;而接口继承只是说明继承/// 类继承不仅是说明继承,同时也是实现继承;而接口继承只是说明继承/// </summary>/// interface IPeople{//接口不可以有字段,所以属性被写作自动属性string Name { get; set; } //声明属性string Gender { get; set; }}interface Itecher:IPeople //定义一个接口,继承Ipeople{void teach();}interface Istudent:IPeople{void student();}internal class Program:IPeople, Itecher, Istudent{public string _name = "";public string _gender = "";public string Name{get { return _name; }set { _name = value; }  }public string Gender{get { return _gender; }set { _gender = value; }}public void teach(){Console.WriteLine("大家好,我叫{0},我是{1},我是一名老师",this._name,this.Gender);}public void student(){Console.WriteLine("大家好,我叫{0},我是{1},我是一名学生", this.Name, this.Gender);}static void Main(string[] args){IPeople a=new Program();a.Name = "李明";a.Gender = "男";Console.WriteLine("姓名{0},性别{1}", a.Name,a.Gender);Program b = new Program();b._name = "王萌萌";b._gender = "女";Console.WriteLine("姓名{0},性别{1}",b._name,b._gender);Console.WriteLine("姓名{0},性别{1}", b.Name, b.Gender);Itecher c = new Program();c.Name = "孙萌萌";c.Gender = "女";c.teach();Istudent d= new Program();d.Name = "任小姐";d.Gender = "女";d.student();}}
}
namespace demo1
{interface IFirst{void First();}interface ISecond:IFirst { void Second();}internal class Progrom:ISecond,IFirst{static void Main(string[] args){Progrom progrom = new Progrom();//实例化类的对象IFirst first = progrom; //使用对象来实例化接口first.First();ISecond second = progrom;second.Second();second.First();}public void First() {Console.WriteLine("这是第一个接口方法");}public void Second(){Console.WriteLine("这是第二个接口方法");}}}
http://www.lryc.cn/news/230550.html

相关文章:

  • 1、NPC 三电平SVPWM simulink仿真
  • JAVA对象列表强转失败,更好的方法
  • 2023最新版本 从零基础入门C++与QT(学习笔记) -5- 动态内存分配(new)
  • asp.net校园招聘管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • flink的键值分区状态自动过期ttl配置
  • 解决Mac配置maven环境后,关闭终端后环境失效的问题(适用于所有终端关闭后环境失效的问题)
  • springboot运行jar包,实现复制jar包resources下文件、文件夹(可支持包含子文件夹)到指定的目录
  • Webpack Bundle Analyzer包分析器
  • SQL-----STUDENT
  • OpenCV入门——图像视频的加载与展示一些API
  • Control的Invoke和BeginInvoke
  • 什么是OpenCL?
  • AdaBoost:提升机器学习的力量
  • Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)
  • 一则DNS被重定向导致无法获取MySQL连接处理
  • Vue3中如何使用this
  • 7.jvm对象内存布局
  • U-boot(一):Uboot命令和tftp
  • 代码随想录算法训练营第五十三天丨 动态规划part14
  • pdf增强插件 Enfocus PitStop Pro 2022 mac中文版功能介绍
  • uniapp app tabbar 页面默认隐藏
  • 深度学习 YOLO 实现车牌识别算法 计算机竞赛
  • 即时通讯技术文集(第23期):IM安全相关文章(Part12) [共15篇]
  • 为什么UI自动化难做?—— 关于Selenium UI自动化的思考
  • Python小白之“没有名称为xlwings‘的模块”
  • RK3588 学习教程1——获取linux sdk
  • 保护您的Google账号安全:检查和加固措施
  • 「Verilog学习笔记」优先编码器Ⅰ
  • java实现TCP通信(socket)服务端-客户端
  • 企业信息模糊搜索API的使用及应用场景