`
coconut_zhang
  • 浏览: 543851 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

基于C#的接口基础教程之二

阅读更多
第二节 定义接口
  从技术上讲,接口是一组包含了函数型方法的数据结构。通过这组数据结构,客户代码可以调用组件对象的功能。

  定义接口的一般形式为:


[attributes] [modifiers] interface identifier [:base-list] {interface-body}[;]

  说明:

  1、attributes(可选):附加的定义性信息。

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

  3、指示器和事件。

  4、identifier:接口名称。

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

  6、interface-body:对接口成员的定义。

  7、接口可以是命名空间或类的成员,并且可以包含下列成员的签名: 方法、属性、索引器 。

  8、一个接口可从一个或多个基接口继承。

  接口这个概念在C#和Java中非常相似。接口的关键词是interface,一个接口可以扩展一个或者多个其他接口。按照惯例,接口的名字以大写字母"I"开头。下面的代码是C#接口的一个例子,它与Java中的接口完全一样:


interface IShape {
 void Draw ( ) ;
}

  如果你从两个或者两个以上的接口派生,父接口的名字列表用逗号分隔,如下面的代码所示:


interface INewInterface: IParent1, IParent2 { } 

  然而,与Java不同,C#中的接口不能包含域(Field)。另外还要注意,在C#中,接口内的所有方法默认都是公用方法。在Java中,方法定义可以带有public修饰符(即使这并非必要),但在C#中,显式为接口的方法指定public修饰符是非法的。例如,下面的C#接口将产生一个编译错误。


interface IShape { public void Draw( ) ; }

  下面的例子定义了一个名为IControl 的接口,接口中包含一个成员方法Paint:


interface IControl {
 void Paint( ) ;


  在下例中,接口 IInterface从两个基接口 IBase1 和 IBase2 继承:


interface IInterface: IBase1, IBase2 {
 void Method1( ) ;
 void Method2( ) ;


  接口可由类实现。实现的接口的标识符出现在类的基列表中。例如:


class Class1: Iface1, Iface2 {
 // class 成员。
}

  类的基列表同时包含基类和接口时,列表中首先出现的是基类。例如:


class ClassA: BaseClass, Iface1, Iface2 {
 // class成员。
}

  以下的代码段定义接口IFace,它只有一个方法:


interface IFace {
 void ShowMyFace( ) ;
}

  不能从这个定义实例化一个对象,但可以从它派生一个类。因此,该类必须实现ShowMyFace抽象方法:


class CFace:IFace
{
 public void ShowMyFace( ) {
  Console.WriteLine(" implementation " ) ;
 }

  基接口

  一个接口可以从零或多个接口继承,那些被称为这个接口的显式基接口。当一个接口有比零多的显式基接口时,那么在接口的定义中的形式为,接口标识符后面跟着由一个冒号":"和一个用逗号","分开的基接口标识符列表。

  接口基:

  :接口类型列表说明:

  1、一个接口的显式基接口必须至少同接口本身一样可访问。例如,在一个公共接口的基接口中指定一个私有或内部的接口是错误的。

  2、一个接口直接或间接地从它自己继承是错误的。

  3、接口的基接口都是显式基接口,并且是它们的基接口。换句话说,基接口的集合完全由显式基接口和它们的显式基接口等等组成。在下面的例子中


interface IControl {
 void Paint( ) ;
}
interface ITextBox: IControl {
 void SetText(string text) ;
}
interface IListBox: IControl {
 void SetItems(string[] items) ;
}
interface IComboBox: ITextBox, IListBox { }

  IComboBox 的基接口是IControl, ITextBox, 和 IlistBox。

  4、一个接口继承它的基接口的所有成员。换句话说,上面的接口 IComboBox 就像Paint一样继承成员SetText 和 SetItems。

  5、一个实现了接口的类或结构也隐含地实现了所有接口的基接口。

  接口主体

  一个接口的接口主体定义接口的成员。


interface-body:
{ interface-member-declarationsopt }

  定义接口主要是定义接口成员,请看下一节--定义接口成员。
分享到:
评论

相关推荐

    基于C#的接口基础教程

    在这个基于C#的接口基础教程中,我们将深入探讨接口的基本概念、用途、语法以及如何在实际编程中应用它们。 首先,我们需要理解接口与类的区别。类是创建对象的蓝图,包含数据成员(字段)和行为成员(方法),而...

    Visual C# 接口编程教程

    - "基于C#的接口基础教程之一至七.doc"文档系列将逐步介绍接口的基础概念,包括接口的创建、使用和实现,以及在实际项目中的应用。 8. **接口与多态性** - 接口是多态性的一种体现,同一接口可以被不同类实现,...

    C#基础教程C# C# C# C#

    【C#基础教程C# C# C# C#】是一份专门为C#编程语言初学者设计的详尽教程。C#(读作“C Sharp”)是微软公司于2000年推出的一种面向对象的、类型安全的、现代的编程语言,主要用于构建Windows平台的应用程序、Web应用...

    C#教程C#教程C#教程

    ASP.NET是基于C#的Web应用程序框架,用于构建动态网站和Web服务。它支持MVC(Model-View-Controller)和Web Forms两种开发模式。 十、移动和跨平台开发 随着.NET Core的发布,C#现在可以用于跨平台开发,包括iOS、...

    C#详细基础教程(推荐使用)

    ### C#基础教程知识点概述 #### 一、C#语言基础 **1.1 C#语言特点** - **面向对象:** C#是一种完全面向对象的语言,所有的代码都是通过类来组织的。 - **垃圾回收机制:** 自动管理内存,减少内存泄漏的风险。 - **...

    c#基础教程_入门级

    **C#基础教程_入门级** C#是一种由微软公司开发的面向对象的编程语言,主要应用于构建Windows桌面应用程序、Web应用以及移动应用等。它以其简洁、高效和类型安全的特点,深受程序员喜爱。本教程将带你从零开始,...

    C#教程 C#教程

    2. **类与对象**:C#是面向对象的语言,所以理解类和对象的概念至关重要。类是对象的蓝图,包含数据成员(字段)和行为成员(方法)。对象是类的实例,可以调用类中定义的方法。 3. **继承与多态**:继承允许创建一...

    c#的基础教程

    ### C#的基础教程知识点详解 #### 一、C#与.NET的关系 C#是一种现代的、面向对象的编程语言,由微软开发并推广。它旨在为.NET Framework提供一种高效的编程手段,虽然C#本身不是.NET的一部分,但它所编写的代码...

    ArcGIS-Engine基础开发教程(C#)C#二次开发ArcGis.pdf

    ### ArcGIS Engine基础开发教程(C#)——关键知识点概览 #### 1. 创建第一个ArcGIS Engine桌面应用程序 **1.1 目标** - 学习如何使用C#来开发基于ArcGIS Engine的桌面应用程序。 - 理解基本的开发流程。 **1.2 ...

    基于C#的 .NET Framework程序设计教程

    这个“基于C#的.NET Framework程序设计教程”显然是一份详细的教学资料,旨在帮助学习者掌握使用C#在.NET平台上构建应用程序的技能。 首先,让我们了解一下.NET Framework的基础。.NET Framework包含两大部分:...

    c#基础入门教程(最新版)2010年

    以上只是C#基础教程的一部分内容,通过深入学习和实践,你可以逐步掌握更多高级特性和技巧,成为一名熟练的C#开发者。"C#基础教程.pdf"这个文件应该包含了关于这些知识点的详细讲解,是初学者理想的自学资料。

    视频教程-C#面向对象基础01

    【视频教程-C#面向对象基础01】是一个针对初学者的C#编程教程,主要讲解了C#语言中的面向对象编程基础知识。在这个教程中,讲师苏坤来自知名的教育机构传智播客,他将深入浅出地介绍面向对象编程的核心概念,帮助...

    非常好的C#菜鸟基础教程

    作为C#的菜鸟基础教程,这个资源显然是为了帮助初学者快速掌握这门语言的入门知识。 本教程的核心目标是引导零基础的学习者了解C#的基本概念,包括语法、变量、数据类型、控制结构、函数、类与对象等。以下是一些...

    ASP NET 4.0 基础教程(C#).rar

    这个基础教程将引导我们深入理解ASP.NET 4.0的核心概念和技术,帮助开发者快速上手C#编程语言在Web开发中的应用。 首先,我们需要了解ASP.NET 4.0的关键特性,如改进的页面生命周期管理,使得开发者可以更好地控制...

    基于C#的海康摄像头二次开发

    在IT行业中,基于C#的海康摄像头二次开发是一个重要的技术领域,主要涉及到视频监控系统的扩展与定制。海康威视作为全球领先的安防产品及解决方案提供商,提供了丰富的SDK(Software Development Kit)供开发者使用...

    C#编程语言与面向对象基础教程

    总的来说,C#编程语言与面向对象基础教程旨在帮助学习者建立坚实的面向对象编程基础,并通过C#这门语言来掌握面向对象技术的核心概念和实现方法,从而在Web开发等领域的应用中能够更加得心应手。

    基于C#简单的组态软件开发.zip

    在本案例中,"基于C#简单的组态软件开发" 提供了一个使用C#编程语言实现的基础教程,旨在帮助开发者了解如何创建这样的软件。C#是微软推出的一种面向对象的编程语言,广泛应用于Windows桌面应用、游戏开发以及现代...

Global site tag (gtag.js) - Google Analytics