- 浏览: 274401 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
Java_zhou:
...
Oracle自定义函数 -
wmj007:
SELECT USER_TAB_COLS.TABLE_NAME ...
Oracle 查询字段详细信息 -
avi9111:
怎么可以个人有一个MQ? 咁威的
使用c#操作IBM WebSphere MQ -
chouchouzzj:
8个小时。。。让我想起了世界时和北京时之间的差距,MQ存在时区 ...
使用c#操作IBM WebSphere MQ
目录
接口的定义
接口与抽象类
接口的的实现
接口的的多态性
一.接口的定义
定义:定义一个协定。实现接口的类或结构必须遵守其协定。
简单的说就是接口或者类之间交互时遵守的一个显示定义。最初接触“类与类之间通过接口交互”这个概念时,误以为接口就是类公开的方法,类之间通过类的方法进行交互。其实接口是独立于类的一个定义。接口定义类之间交互的标准。
那么类与类之间直接交互就好了,为什么还要使用接口呢?
这主要是因为:接口是类之间交互内容的一个抽象,把类之间需要交互的内容抽象出来定义成接口,可以更好的控制类之间的逻辑交互。可见接口内容的抽象好坏关系到整个程序的逻辑质量;另外可以在任何时候通过开发附加接口和实现来添加新的功能;
关于接口一个很重要的概念:接口只包含成员定义,不包含成员的实现,成员的实现需要在继承的类或者结构中实现。
接口的成员包括:方法,特性,索引器,事件。
注意:接口不包含字段。
实现接口的类必须严格按其定义来实现接口的每个方面
接口本身一旦被发布就不能再更改,对已发布的接口进行更改会破坏现有的代码。
一个典型的接口示例:
using System;
using System.Colletion;
public delegate voic Chang(object sender,object event)//定义一个委托
public interface Ibroker //定义一个股票经济人接口
{
string GetRating (string stock);//一个获得金额的方法(此处没有实现)
decimal pricePerTrade //定义一个设置每股价格的特性
{
get; //没有实现的
set;
}
decimal this(string StockName) //定义索引器
{
get;
set;
}
event Change pricechange; //定义接口的事件
}
二.接口与抽象类
抽象类和接口在定义上和功能上有很多相似的地方,具体在程序中使用抽象类还是接口需要比较抽象类和接口的具体差别。
抽象类:一种不能实例化而必须从中继承的类,抽象类可以提供实现,也可以不提供实现
子类只能从一个抽象类继承
抽象类应主要用于关系密切的对象
如果要设计大的功能单元,则使用抽象类。
如果预计要创建组件的多个版本,则创建抽象类
接口:是完全抽象的成员集合,不提供认识实现。
类或者结构可以继承几个接口。
接口最适合为不相关的类提供通用功能
如果要设计小而简练的功能块,则使用接口
接口一旦创建就不能更改。如果需要接口的新版本,必须创建一个全新的接口
三.接口的的实现
接口的实现分为:隐式实现和显式实现。如果类或者结构要实现的是单个接口,可以使用隐式实现,如果类或者结构继承了多个接口那么接口中相同名称成员就要显示实现。显示实现是通过使用接口的完全限定名来实现接口成员的。
针对上面的例子 我们可以这样实现接口:
public class testInterface: Ibroker //定义一个继承ibroker接口的类
{
hashtable hash=new hashtable();
decimal pricepertrade;
public testInterface(decimal price) // 构造函数
{
pricepertrade=price ; //初始化字符串
}
public string Getrating (string stock) //隐式实现接口的方法
{
return “buy”;
}
public decimal Ibroker.pricepertrade // 显式实现接口的特性
{
get
{
return pricepertrade;
}
set
{
pricepertrade=value;
pricechange(“Finacebroker”,value);
}
public decimal this(string stockName)
{
get
{
return (decimal)Hash[stockName];
}
set
{
hash.add(stockname,value);
}
}
}
public event changer pricechange;//接口中的所有成员都要实现
}
四.接口中的多态
多个类继承了相同的接口就实现了接口的多态性,接口的多态性的访问和类的多态性访问一样。下面的例子说明怎么实现接口的多态性访问:
public class InterfaceTester
{
public stratic int Main (string[] args)
{
string recommendation;
Arraylist Brokers=new Arraylist;//定义一个列表
Brokers.add(new firstBroker(7.21m));//添加第一个继承接口的类
Brokers.add(new secondBroker(12.3m));// 添加第二个继承接口的类
InterfacetTester new Iftst=new InterfacetTester
Foreach (Ibroker broker in Brokers)
{
broker.pricechange+=new change(iftst.pricepertradechange);
broker[“adc”]=12.33m;
broker[“rty”]=11.23ml
broker.pricepertrade=12.55m;
}
}
}
自己写的例子:(刚刚学习的)
2
3 interface Icontrol
4{
5 int Add(int a,int b);
6 int Sub(int a,int b);
7
8}
9
10public class Operater :Icontrol
11{
12 public int Add(int a,int b)
13 {
14 return a+b;
15 }
16 public int Sub(int a,int b)
17 {
18 return a-b;
19 }
20
21}
22public class op
23{
24 static void Main()
25{ Operater s =new Operater();
26 int c=s.Add(2,4);
27 Console.WriteLine("2+4={0}",c);
28 int resultSub=s.Sub(2,4);
29 Console.WriteLine("2-4={0}",resultSub);
30
31}
32}
发表评论
-
想做一个wiki网站
2007-06-16 01:01 787很想做一个wiki网站,用来收集一些资源,不知道好不好 -
.net 编译器csc的用法大全
2007-07-03 13:08 14321. 配置环境变量:在path 变量中加上csc.exe的路径 ... -
ASP日期和时间函数
2007-07-04 11:37 1187<%=year(now)%>年<%=mo ... -
C# ini文件读写 类
2007-08-05 14:00 1546一个C# ini文件读写类,从网上收集的,很全,就是没有对se ... -
c#索引器
2007-08-13 17:13 1303经常见有这样的类:如aClass a = new Class ... -
为sql server 表数据生成创建的储存过程(生成insert 脚本)
2007-08-14 13:35 1159使用SQL Server 2000自带的“生成SQL脚本”工具 ... -
学习MemberShip
2007-08-15 21:38 870这几天没时间,先收集一些资料(没有msdn就是不爽,上网速度有 ... -
sql server的随机函数newID()和RAND()
2007-08-16 20:15 1708sql server的随机函数newID( ... -
用The Regulator 学习正则表达式
2007-08-17 17:12 1057前几天发现一个好的学习正则表达式的工具 The Regulat ... -
C# float 与零比较(南京某公司面试题)
2007-09-01 02:48 2170写出float类型与零比较的判断语句 <script t ... -
我的.net学习资料
2007-09-11 00:55 1119我的.net学习资料 -
javascript 给text赋值
2007-09-25 12:27 2778javascript 给text赋值 方法一: <!D ... -
javascript权威指南例子(自己写的)
2007-10-03 14:17 876javascript权威指南例子(自己边看边写的) 前面几章的 ... -
msdn的javascript文章转载
2007-10-08 10:18 1068JavaScript 使用面向对象的技术创建高级 Web 应用 ... -
vs2005 调试时出现“无法附加。绑定句柄无效”的解决办法
2007-10-08 17:34 1218vs2005启动调试程序时,出现 无法附加,绑定句柄无效 ... -
vs 2005 启动设备仿真器管理器出错(wm5)解决方案
2007-10-10 12:14 1171vs 2005 启动设备仿真器管理器出错(wm5)解决方案,问 ... -
C#(.net) 线程和最小化到托盘的例子
2007-10-13 15:55 1048自己写的一个使用线程和最小化到托盘的例子。 例子下载当你看这个 ... -
ORACLE函数介绍
2007-10-17 12:22 793ORACLE函数介绍 第一篇 著名函数之单值函数 ... -
sqlserver 查询字段的详细信息
2007-11-29 19:54 884sqlserver 查询字段的详细信息 http://www. ... -
采集系统万能正则表达式
2007-11-30 13:54 1304由于经常要写一些采集的程序,下面的三个函数是采集中的很常用的函 ...
相关推荐
### C#接口的作用详解 #### 一、引言 在软件开发中,接口是一个非常重要的概念,尤其是在面向对象编程语言中。本文将详细介绍C#中的接口及其作用,并通过实例来帮助理解接口的重要性和使用方法。 #### 二、什么是...
在这个"**c#接口调用案例**"中,我们将探讨如何创建接口,实现接口,并在实际应用中调用接口方法。 首先,接口通过`interface`关键字声明,它只包含方法签名、属性和事件,而不包含任何实现细节。例如: ```csharp...
本示例将重点关注"C#接口对接",特别是通过Web Service实现的接口访问。C#是Microsoft开发的一种面向对象的编程语言,广泛用于构建Windows桌面应用、Web应用以及.NET框架下的服务。 **接口对接的概念** 接口对接是...
本文将深入探讨如何在Java中调用C#接口,以及涉及的相关技术栈。 1. **Java与C#的互操作性** Java和C#虽然都是高级编程语言,但它们属于不同的生态系统。为了实现跨平台交互,通常采用两种主要方式:Web服务(如...
本文将深入探讨C#接口的使用及其带来的好处。 首先,接口提供了多态性。多态性是面向对象编程中的一个重要特性,它允许不同类型的对象以相同的方式进行操作。在C#中,一个类可以实现多个接口,这就意味着该类可以...
### C#接口技术详解 #### 接口概览 接口在C#中扮演着关键角色,它是定义一种协定的方式,确保任何实现该接口的类或结构遵循特定的行为规范。接口的引入克服了C++中多继承带来的复杂性,提供了一种更加清晰、简洁的...
综上所述,C#接口是构建可扩展、灵活和规范化的软件系统的关键工具。理解和熟练使用接口,可以提高代码的复用性和可维护性,是成为优秀C#开发者不可或缺的技能。在实际项目中,我们应根据需求合理地利用接口,实现...
"c#接口的意义 学习心得 读书笔记" c#接口的意义是学习c#语言的重要部分,对于初学者来说,理解接口的概念和应用是非常重要的。本文将详细介绍c#接口的定义、特点、优点和实践经验,帮助读者更好地理解和使用接口。...
下面,我们将通过一个简单的例子深入理解C#接口的使用。 首先,我们来创建一个接口。接口名称通常以大写字母"I"开头,以示区别于类。例如,我们可以创建一个名为`IMyInterface`的接口: ```csharp public ...
C#接口实现案例 C#中的接口(Interface)是一种抽象类,定义了一组方法、属性、事件和索引器,但不提供实现。接口只能被继承和实现,不能被实例化。接口的主要作用是定义一个契约,规定了类或结构体必须提供的成员...
在这个名为"C#接口应用小程序"的项目中,我们可以深入理解接口的基本原理及其在实际编程中的应用。 接口(Interface)在C#中是一个纯抽象类型,它定义了一组方法签名,但不包含任何实现。类可以实现一个或多个接口...
本文将深入探讨C#接口技术的运用及其对完善面向对象编程的意义。 1. **接口的定义与使用** - 接口使用`interface`关键字来声明,它由一组公共成员(如方法、属性、索引器和事件)组成,这些成员默认都是抽象且公开...
### C#接口的基本概念 接口(Interface)是一种抽象类型,它定义了一组方法、属性、事件和索引器的签名。这些成员在接口中仅声明而不包含具体的实现。接口不能被实例化,但可以被类或结构体所实现。当一个类实现了...
总之,“学习c#接口的典型例子”这个资料包是学习和掌握C#接口的宝贵资源,它将帮助开发者更好地理解接口的概念,提高其在实际项目中的应用能力。通过实际编写和分析这些示例,学习者可以加深对接口的多态性和灵活性...
c#接口调试工具postman完整安装包,免安装
在C#编程语言中,接口(Interface)是一种特殊类型的类,它定义了一组成员,包括方法、属性、索引器和事件,但不提供具体的实现。接口的主要目的是为类或结构提供一种方式来声明它们支持特定的行为或特性,而无需...
用友U8二次开发记录应收应付com接口(vb.net to c# 接口)
总结来说,C#接口是一种重要的编程构造,它定义了一组方法、属性、事件和索引器的协议,类或结构通过实现接口来承诺实现这些成员。接口支持多重继承和多重实现,这增强了编程的灵活性和复用性。接口作为组件技术的一...
C#接口教程,供大家学习,当时的发生的发生的发生地方