首页 > 编程语言 >【C#】接口的基本概念

【C#】接口的基本概念

时间:2022-09-23 17:01:44浏览次数:75  
标签:C# 接口 实例 抽象 抽象类 方法 基本概念

目录

基本

什么是接口

C#接口(interface)是:用来定义一种程序的协定

实现接口的类或者结构要与接口的定义严格一致

有了这个协定,就可以抛开编程语言的限制(理论上)。

C#接口可以从多个基接口继承,而类或结构可以实现多个接口

C#接口可以包含方法、属性、事件和索引器

接口本身不提供它所定义的成员的实现

接口只指定实现该接口的类接口必须提供的成员

C#接口好比一种模版,这种模版定义了对象必须实现的方法,其目的就是让这些方法可以作为接口实例被引用。

接口不能被实例化

类可以实现多个接口并且通过这些实现的接口被索引

接口变量只能索引实现该接口的类的实例

接口与抽象类的区别

接口是对动作的抽象,抽象类是对根源的抽象。

抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么

抽象类

(1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法  
(2) **抽象类不能被实例化**  
(3) 抽象类<u>可以但不是必须</u>有抽象属性和抽象方法,但是<u>一旦有了抽象方法,就一定要把这个类声明为抽象类</u>  
(4) 具体派生类必须覆盖基类的抽象方法  
(5) 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖它们。

接口

(1) **接口不能被实例化**  
(2) 接口<u>只能包含方法声明</u>  
(3) 接口的成员包括<u>方法、属性、索引器、事件</u>  
(4) 接口中**不能包含**<u>常量、字段(域)、构造函数、析构函数、静态成员。</u>

实例

1.设计接口:IBluetooth
2.设计类:MobliephoneLaptopSmallCar实现蓝牙接口
3.设计方法:UseDeviceBluetooth
4.输出显示接口中TransferDataByBluetooth方法的返回信息。

本次实例,采用 Windows desktop App (Framework)进行演示

image.png

设计接口

interface IBluetooth
    {
        //类型/版本  -- 萌狼蓝天 微信公众号:mllt9920
        double Type { get; }
        //最大传输速度  -- 萌狼蓝天 微信公众号:mllt9920
        double MaxTransferSpeed { get; }
        //传输数据  -- 萌狼蓝天 微信公众号:mllt9920
        string TransferDataByUsb(string data);
    }

image.png

这个笔记是很久以前的,我发现没写完……哈哈哈

哈哈哈

将就看吧。

【C#】【平时作业】习题-9-接口 - 萌狼蓝天

标签:C#,接口,实例,抽象,抽象类,方法,基本概念
From: https://www.cnblogs.com/mllt/p/CShap-interface-base.html

相关文章

  • 【C#】iTextSharps.dll操作Excel、PDF
    一、PDFusingiTextSharp.text;usingiTextSharp.text.pdf;usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Linq;usingSystem.Tex......
  • Centos7设置postgresql数据库开机自启动
    前言PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下如果不知道具体的路径,可以用find命令进行查找。命令如下:[root@admin~]#find/-......
  • JavaScript HTML DOM EventListener
    可向指定元素添加事件句柄添加的句柄不会覆盖已存在的事件句柄可向一个元素添加多个事件句柄可向同个元素添加多个同类型的事件句柄,如两个“click”事件向DOM对象添加......
  • Anaconda功能、优点、安装步骤(安装视频)
    目录介绍功能(包和环境的管理器)优点(省时省心)下载地址安装教程要点conda的常见命令查询完整帮助文件管理conda和anaconda管理环境包管理其他​介绍Anaconda是专注于数据......
  • Feign调用第三方http接口 (摘抄)
    我们平常在开发的时候,经常会碰到调用第三方的接口,这个时候我们可以使用httpClient或者restTemplate,但是这两种方式相比较与Feign调用,都会麻烦一点儿。Feign是声明式服务调......
  • 【电脑问题】开机自动进入BIOS,按下Ctrl+ALt+Del键可以正常进入系统
    问题描述:开机自动进入BIOS,按下Ctrl+ALt+Del键可以正常进入系统Ctrl+Alt+Del作用:立即终结电脑的异常状态,包括宕机按法①:三个键一起按按法②:先按住Ctrl和Alt,再按Del必......
  • cp随机数
    dlt是七个开奖号码:可以对应五个区间前区(1~35)可以切割为:1~12、13~24、25~35后区(1~12)可以切割为:1~6、7~12*思路:先整个函数(比如叫:sjs)可以返回[min,max]区间的随机......
  • [USACO3.2]魔板 Magic Squares
    一道简单的bfs题目,关键是怎么表示状态。康托展开适用于全排列,比如一个排列1324,我们要求出它是排第几地排列第一位:第一位比1小的排列都比这个排列小,但是没有ans+=03!......
  • H3C 服务器安装 ESXI 6.7
    一、H3C服务器raid5配置1、启动Server在启动界面,按键盘ESC或Del键进入BIOS。2、BIOS设置界面修改系统语言“简体中文”。3、启动模式默认为“UEFI”,不用修改为“LE......
  • C#字符串与byte[]相互转换
    string类型转成byte[]:byte[]byteArray=System.Text.Encoding.Default.GetBytes(str);byte[]转成string:stringstr=System.Text.Encoding.Default.GetString(b......