C#第四次作业(接口)

[attributes] [access-modifiers] interface interface-name [:base-inteface-list] {
       interface body
}

各项释义

attributes(可选):附加的定义性信息,允许复数。

access-modifiers(可选):允许使用的修饰符有 new 和四个访问修饰符。分别是:newpublicprotectedinternal、 private。在一个接口定义中同一修饰符不允许出现多次,new 修饰符只能出现在嵌套接口中,表示覆盖了继承而来的同名成员。public, protected, internal, private 修饰符定义了对接口的访问权限,默认值是internal。

interface-name :接口名, 并不需要解释。

base-inteface-list(可选):包含一个或多个显式基接口的列表,接口间由逗号分隔。

interface body :接口主体(不能有访问修饰符),只是定义接口的方法和属性等的签名,实际的实现是写在使用该接口的class里。

使用方法

通过类继承接口来使用接口,表象为类执行接口中的interface body 部分,类继承接口后要执行全部指令。

接口是可以继承接口的,使用方法等同于类继承,套用后调用。接口继承接口不用实现继承的接口中的方法,不过一个类继承一个有继承其他接口的接口时,一定要实现继承链上所有接口中的所有方法,不然就会报错。

类可以调用多个接口,按照顺序执行。

接口声明示例

public interface IStorable
{  int x{get;set;}\\存储变量}

接口继承

 public class Document : IStorable//如继承一般类一般继承接口,与其类似的是c与c++中也有类似的操作
{
    public void Read( ) {...}//这里可以加修饰符了,并写出实现代码
    public void Write(object obj) {...}
    ...
}

接口继承有多种形式,但是殊途同归的是不管执行了什么操作,都是继承了接口中的语句的前提下进行的。

通常情况下尽量不要在一个接口中放入多种功能不同的语句,容易造成逻辑混乱,不如建立多个接口来使用,方便而且不容易错误。

接口污染是最容易出现的问题,即如果一个类A实现了这个接口B,但是接口B中某个"功能"C 是A根本不可能有的,因为A实现了接口B,所以必须实现B中的所有"功能",那么这个C也要被A实现,显然这个C是A根本不可能有的。

也就是说逻辑混乱,所以通常最好不要在一个接口中放入大量不同功能的语句。尽量使用精简的接口。

时间: 2024-10-03 21:41:16

C#第四次作业(接口)的相关文章

<第四次作业查阅>hashmap由value找key的算法

问题:不同于第三次作业,第三次作业是按照key的值排序输出,第四次作业则是要求按照频率(hashmap的value值)排序,然后输出key的值,最开始的想法是还是沿用第三次作业的做法,想着查询一下怎么从value反得到key的值,最后发现这种做法不仅麻烦,而且效率特别低,也给了我启示,由于key-value对可能出现多对一的情况,所以由key的value比较容易高效,但是反之的效率就比较低,应该尽量能够避免试图通过value得key. Map中是一个key有且只有一个value. 但是一个val

04+罗潇潇+罗潇第四次作业

04+罗潇潇+罗潇第四次作业 1.项目整体管理的过程 (1)项目启动,制定章程 (2)制定初步的项目范围说明书. (3)制定项目管理计划 (4)指导和管理项目执行 (5)监督和控制项目 (6)整体变更 (7)项目收尾 2.项目启动就是以书面的.正式的形式肯定项目的成立与存在,同时以书面正式的形式为项目经理进行授权.项目章程应当由项目组织以外的项目发起人发布,若项目为本组织开发也可以由投资人发布. 3.项目章程包括: (1)基于项目干系人的需求和期望提出的要求. (2)项目必须满足的业务要求和产品

软件工程(第四次作业)

第四次作业 题目: 1. 敏捷开发是在什么样的背景下产生的?其主要特点有哪些?什么时候选择敏捷开发更恰当,为什么? 2. Code smell 是如何产生的?有哪些典型的 code smell?代码重构(Code refactoring)有哪些优点?有哪些代码重构的方法? 答:1(1)敏捷开发的背景: 所谓敏捷开发是以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视.可集成和可运行使用的特征.换言

软件工程第四次作业——团队作业

软件工程第四次作业--团队作业 本次作业采用团队作业的方式,我的队友是我的同班同学,他们分别为:(队长)亢健强,贾猛,黄明帅,黄珂锐.我们团队的总体任务是要做一个"乐谱识别与演奏"的软件,拍摄一张乐谱图片,它会使用光学识别转换成音乐. 此次团队作业中我得任务主要是做需求调研,为此我先总结了一下常用的需求调研方法的优缺点,然后结合我们团队的实际情况选出了一种最适合我们的调研方法. 调研方法 优 点 缺 点 实地观察法 调查者在实地通过观察获得直接的.真实可靠的第一手资料 有一定的偶然性,

DOM对象模型接口规范中的四个基本接口

DOM对象模型的四个基本接口 在DOM对象模型接口规范中,有四个基本的接口:Document,Node,NodeList以及NamedNodeMap.在这四个基本接口中,Document接口是对文档进行操作的入口,它是从Node接口继承过来的.Node接口是其他大多数接口的父类,象Documet,Element,Attribute,Text,Comment等接口都是从Node接口继承过来的.NodeList接口是一个节点的集合,它包含了某个节点中的所有子节点.NamedNodeMap接口也是一个

结对作业(软件工程第四次作业)

软件工程第四次作业---代码审查 一.partner 结对伙伴:林路 代码链接:coding 二.代码审查表 功能模块名称 简单的语法分析程序 审查人 王灵杰 审查日期 2018.4.6 代码名称 简单的语法分析程序 代码作者 林路 文件结构 重要性 审查项 结论 头文件和定义文件的名称是否合理? 合理 头文件和定义文件的目录结构是否合理? 合理 版权和版本声明是否完整? 不完整 重要 头文件是否使用了 ifndef/define/endif 预处理块? 没有 头文件中是否只存放"声明"

第四次作业——04树

第四次作业--树 一.学习总结 树的思维结构图 2.对于树学习总结 ⑴.树结构认识:树是一种非线性结构,每个节点有0个或多个后继节点,有且仅有一个前驱节点(根节点除外).在树中,递归方法可以放在考虑的首要位置 ⑵.学习这个结构遇到的困难:递归调用不会很清晰,代码量大,较难记忆. ⑶.树结构可以解决的问题:并查集问题 哈夫曼编码的问题. 二.6-1 二叉树操作集 1.设计思路 void CreateBTree(BTree &BT,string str){ 创建一个树T 定义一个i来计数 创建一个队

“全栈2019”Java第六十四章:接口与静态方法详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第六十四章:接口与静态方法详解 下一章 "全栈2019"Java第六十五章:接口与默认方法详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&qu

第一次作业-2班-时宇 PTA第四次作业暂挂

PTA第一次作业 第一题 计算两个数的和与差: 1.设计思路 (1)算法 定义四个浮点型的标识符a,b,sum,diff,对a,b分别赋值,函数调用. a的值传递给op1,b的值传递给op2,sum的地址传递给指针变量psum,diff的地址传递给指针变量pdiff:输出两个数的和与差. 代码如下: 2.实验代码 ```void sum_diff( float op1, float op2, float *psum, float *pdiff ){ *psum=op1+op2; *pdiff=o