接口的学习

           接口?究竟有什么用呢? 在没有学习接口之前,总认为接口是很难学习的一个知识点;因为从名字上来理解就感觉非常的神秘!但这都是表面的现象,因为,有些事情表面虽然给人一种神秘的感觉,但实质却很简单;就好比接口,下面是我对接口的简单总结:

             接口按照一定的协议组成,实现接口的类或者结构必须遵守其协定。接口可以从多个基接口继承,而类或结构可以实现多个接口;接口的定义方法:如 interface interfaceName{ };接口的成员只可以是:事件、属性、方法;除开这四种成员,别的都不可以;在定义接口的成员时,不能加任何修饰符;因为系统默认为公共(pulic),所以不需要加任何修饰符;相反就会报错。成员的定义;属性:定义属性时,只可以定义该属性的只读,或者读写、只写等操作;并且在定义操作的时候只能以分号( ; );例如:string Nam{ set; get; ///该属性定义的操作为读写;即不仅可以写入,并且还可以进行读出操作; };方法的定义:定义方法没有方法体,在括号后面以分号结束,方法体的实现在实现类中实现。例如:string Opear();这就表示定义一个方法。

            接口的操作规则,接口不可以进行实例化,但可以对其进行定义变量;并且接口只可以作为基类存在;在接口中定义的成员在实现类或者结构中必须将所有的成员实现,否则就会保存;接口同时也是一种继承的方式之一(还有类之间的继承,一对一的继承。),并且是一种多继承方式;接口成员的现实实现方式:如果,在一个实现类或者结构中有多个接口,并且在这些不同的接口中有相同的成员,那么就必须进行显示的实现;否则就要报错;例如:接口一:interface A{ float length(); float width(); } interface B{ float length(); float width(); } 此时,如果要对这两个接口进行同时实现,那么就要进行显示实现;如; class Box:A,B{ pulic float length{ return "方式一"; } pulic float width(){ return "方式一二"; } float B.length(){ return "实现2"; } float B.windth(){ return "实现22"; } };现在问题出来了,两个接口中的成员都是一样的,因此在类或结构中实现的时候,必须要将另外一个进行显示实现;否则就要报错;接口的实现不能本身进行实现,必须要用类或结构来进行实现。

         接口和抽象类的比较;抽象类同接口一样,都只可以作为基类使用;抽象类中的成员不一定是抽象类型;但如果在类中只要有一个属于抽象类型,那么这个类就必须将其定义为抽象类;否则就要报错。接口只是一种定义,实现则全是在类或者结构中,并且要全部实现,否则就要报错;在抽象类中,抽象成员默认为可以进行重写操作;因为,abstract实际包含virtual功能(虚拟操作)。因此,在派生类中可以对该成员进行重写操作;而接口中的成员则不可以,接口相当于是一种协议,那么继承类就必须要遵循该协议的规定,只能实现规定的协议操作,而不可以进行别的什么操作。接口可以进行多对一实现,即在一个类或结构中可以同时有多个接口进行实现;而在抽象类中,只可以有一个抽象类作为基类。

          接口与抽象类的缺陷,接口虽然比抽象类更安全,但是,在进行实现的时候只能按照规定的协议进行;同时,这两种操作只可以作为一个类或结构的基类(有点不准确)进行实现。

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值