C#类实现接口简单介绍

开发 后端
这里介绍C#类实现接口的例子,其中ISequence 为一个队列接口,提供了向队列尾部添加对象的成员方法Add( ),IRing 为一个循环表接口。

本文向大家介绍C#类实现接口,可能好多人还不知道C#类实现接口,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

C#类实现接口

前面我们已经说过,接口定义不包括方法的实现部分。接口可以通过类或结构来实现。我们主要讲述通过类来实现接口。用类来实现接口时,接口的名称必须包含在类定义中的基类列表中。

下面的例子给出了C#类实现接口的例子。其中ISequence 为一个队列接口,提供了向队列尾部添加对象的成员方法Add( ),IRing 为一个循环表接口,提供了向环中插入对象的方法Insert(object obj),方法返回插入的位置。类RingSquence 实现了接口ISequence 和接口IRing。

  1. using System ;  
  2. interface ISequence {  
  3. object Add( ) ;  
  4. }  
  5. interface ISequence {  
  6. object Add( ) ;  
  7. }  
  8. interface IRing {  
  9. int Insert(object obj) ;  
  10. }  
  11. class RingSequence: ISequence, IRing  
  12. {  
  13. public object Add( ) {…}  
  14. public int Insert(object obj) {…}  

如果类实现了某个接口,类也隐式地继承了该接口的所有父接口,不管这些父接口有没有在类定义的基类表中列出。看下面的例子:

  1. using System ;  
  2. interface IControl {  
  3. void Paint( );  
  4. }  
  5. interface ITextBox: IControl {  
  6. void SetText(string text);  
  7. }  
  8. interface IListBox: IControl {  
  9. void SetItems(string[] items);  
  10. }  
  11. interface IComboBox: ITextBox, IListBox { } 

这里, 接口IcomboBox继承了ItextBox和IlistBox。类TextBox不仅实现了接口ITextBox,还实现了接口ITextBox 的父接口IControl。

前面我们已经看到,一个类可以实现多个接口。再看下面的例子:

  1. interface IDataBound {  
  2. void Bind(Binder b);  
  3. }  
  4. public class EditBox: Control, IControl, IDataBound {  
  5. public void Paint( );  
  6. public void Bind(Binder b) {...}  

类EditBox从类Control中派生并且实现了Icontrol和IdataBound。在前面的例子中接口Icontrol中的Paint方法和IdataBound接口中的Bind方法都用类EditBox中的公共成员实现。C#提供一种实现这些方法的可选择的途径,这样可以使执行这些的类避免把这些成员设定为公共的。C#类实现接口成员可以用有效的名称。

【编辑推荐】

  1. C# this关键字详解
  2. C#调用析构方法详解
  3. C#释放托管资源简单描述
  4. C#单路代理简单分析
  5. C#文法产生式概述
责任编辑:佚名 来源: IT168
相关推荐

2009-08-06 14:53:41

C# User类

2009-08-27 13:37:11

C#类和结构

2009-09-02 18:03:19

C#实现泛型类

2009-09-03 15:57:11

C# SystemMe

2009-08-12 09:41:28

C# Director

2009-08-13 17:36:54

编译C#代码

2009-08-03 17:51:43

C#引用类型

2009-08-25 13:38:35

C# Timer组件

2009-08-20 16:25:59

C# 匿名方法

2009-08-06 18:15:13

C# SQL Serv

2009-09-01 16:19:57

C# new()约束

2009-08-07 17:12:07

C# DLL函数

2009-09-03 09:40:57

C#创建表单

2009-08-14 16:46:44

C#元数据

2009-08-10 16:19:37

C#冒泡排序

2009-08-07 17:41:40

C#预处理

2009-08-27 10:19:22

C#匿名类型

2009-08-18 17:37:57

C#固定指针

2009-08-21 17:55:52

C#复合控件

2009-08-14 17:27:56

C#方法参数
点赞
收藏

51CTO技术栈公众号