C#接口定义

C#不支持多重继承,但是客观世界出现多重继承的情况又比较多。为了避免传统的多重继承给程序带来的复杂性等问题,C# 提出了接口的概念。通过接口可以实现多重继承的功能。  继承该接口的类或结构要与接口的定义严格一致。接口描述可属于任何类或结构的一组相关行为。接口可由方法、属性、事件、索引器或这4种成员类型的任何组合构成。接口不能包含字段。接口成员一定是公共的。  类和结构可以像类继承基类或结构一样从接口继承,而且可以继承多个接口。当类或结构继承接口时,它继承成员定义但不继承实现。若要实现接口成员,类中的对应成员必须是公共的、非静态的,并且与接口成员具有相同的名称和签名。类的属性和索引器可以为接口上定义的属性或索引器定义额外的访问器。例如,接口可以声明一个带有get访问器的属性,而实现该接口的类可以声明同时带有get和set访问器的同一属性。但是,如果属性或索引器使用显式实现,则访问器必须匹配。  接口可以继承其他接口。类可以通过其继承的基类或接口多次继承某个接口。在这种情况下,如果将该接口声明为新类的一部分,则类只能实现该接口一次。如果没有将继承的接口声明为新类的一部分,其实现将由声明它的基类提供。基类可以使用虚拟成员实现接口成员,在这种情况下,继承接口的类可通过重写虚拟成员来更改接口行为。

定义接口

接口的声明采用下列格式:

修饰符 interface 接口名称 :继承的接口列表

{

接口内容;

}

其中,除interface 和接口名称,其他的都是可选项,下面是一个C#接口定义的例子,代码如下:

public interface iSomeInterface { void UpdateDataBase(); }

接口继承  一个接口可以从一个或多个基接口继承。例如:

interface iOthrerInterface :iSomeInterface,iCom { intCompareTo(object obj); }

时间: 2024-10-08 06:10:47

C#接口定义的相关文章

JAVA8新特性——接口定义增强

JAVA9都要出来了,JAVA8新特性都没搞清楚,是不是有点掉队哦~ 接口定义增强 在JDK1.8以前,接口是定义的: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 在JDK1.8之前,接口有如下特性: 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错). 接口中

第37条:用标记接口定义类型

标记接口是没有包含方法声明的接口,而只是指明一个类实现了具有某种属性的接口.考虑Serializable接口,通过实现这个接口,类表明它的实例可以被写到ObjectOutputStream. 标记接口相比标记注解的优点: 1.标记接口定义的类型是由被标记类的实例实现的:标记注解则没有定义这样的类型. 2. 可以被更精确地进行锁定.如果注解类型利用@Target(ElementType.TYPE)声明,它就可以被应用到任何类或者接口,假设有一个标记只是适用于特殊的接口实现,但它却可以被应用到类,如

我的编码习惯 - 接口定义

原文出处: 晓风轻 工作中,少不了要定义各种接口,系统集成要定义接口,前后台掉调用也要定义接口.接口定义一定程度上能反应程序员的编程功底.列举一下工作中我发现大家容易出现的问题: 1. 返回格式不统一 同一个接口,有时候返回数组,有时候返回单个:成功的时候返回对象,失败的时候返回错误信息字符串.工作中有个系统集成就是这样定义的接口,真是辣眼睛.这个对应代码上,返回的类型是map,json,object,都是不应该的.实际工作中,我们会定义一个统一的格式,就是ResultBean,分页的有另外一个

4. Dubbo原理解析-代理之接口定义 (转)

转载自  斩秋的专栏  http://blog.csdn.net/quhongwei_zhanqiu/article/details/41577159 一:ProxyFactory的接口定义 import com.alibaba.dubbo.common.Constants; import com.alibaba.dubbo.common.URL; import com.alibaba.dubbo.common.extension.Adaptive; import com.alibaba.dub

Java接口定义和实现

1. 使用interface来定义一个接口.接口定义类似类的定义,分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下: 1 [修饰符] interface 接口名 [extends 父接口名列表]{ 2 [public] [static] [final] 常量; 3 [public] [abstract] 方法; 4 } 修饰符:可选参数public,如果省略,则为默认的访问权限: 接口名:指定接口的名称,默认情况下,接口名必须是合法的Java标示符,一般情

Java 8新特性-接口定义增强

为了解决当原有的接口中方法不足时,向原有的接口中添加新的方法,该接口下的N多实现类也需要重写该方法的问题!Java8引入了接口定义增强概念! Java8 打破了原有的接口的方法定义: 公共的.抽象的  默认方法: Java 8 还允许我们给接口添加一个非抽象的方法实现,只需要使用 default 关键字即可,这个特征又叫做扩展方法. 在实现该接口时,该默认扩展方法在子类上可以直接使用,它的使用方式类似于抽象类中非抽象成员方法. 但扩展方法不能够重载 Object 中的方法.例如:toString

CDN页面刷新接口定义[高升]

一 . 任务 分发 工作流程步骤 1. 合作方按照高升定义的 json 数据格式向高升分发接口 post 任务,高升分发接口会根据接收情况即时反馈接收成功还是失败的结果.二 . 高升 分发 接口 定义 和 返回值1. post 方式 (建议 使用第二种方式) ) :a. 通过 http 参数方式 post,例如:http:// api.gosun.com/portal/task/refresh?context=这里是 json 数据b. 通过 http 的 body 来 post,body 的内

数据结构 链表_双向链表的接口定义

双向链表介绍 双向链表中的每一个元素都由3部分组成:除了数据成员.next指针外,每个元素还包含一个指向其前驱元素的指针,称为prev指针.双向链表的组成是这样的:将一些元素链接在一起,使得每个元素的next指针都指向其后继的元素,而每个元素的prev指针都指向其前驱元素. 为了标识链表的头和尾,将第一个元素的prev指针和最后一个元素的next指针设置为NULL. 要反向遍历整个双向链表,使用prev指针以从尾到头的顺序连续访问各个元素.当我们知道某个元素存储在链表在的某处时,我们可以选择按何

Java接口定义(interface)及使用(implements)

1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口.extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口 来实现,这样就要用到implements,继承只能继承一个