第18讲 接口.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第18讲 接口

第18讲 接口 5.9 接口类型 类类型是使用最多最广的类型,除了类类型外,还有接口等类型。 5.9.1 接口定义与实现 接口是使用关键字interface定义的一种类型。定义接口的一般形式如下: interface 接口名(方法属性等成员) 接口可以有属性、方法、索引器和事件成员,接口的所有成员都默认为抽象的、公共的。 接口的作用类似于抽象类,只提供抽象的成员,例如方法成员只有方法头而没有方法体,方法头后面直接跟英文分号结束。接口的抽象成员由类来实现。 定义实现接口的类与定义派生类相似,也是用英文冒号表示。实现接口的一般形式如下: 可选public等 可选sealed class 类名:接口名(含实现接口的类成员) 实现接口就是定义一个类,为接口的所有抽象成员提供代码块成员体,以便能够执行。 例:建立winform应用程序项目,定义图形接口以及实现图形接口的圆类: interface Ishape //图形接口 { double Girth //定义属性成员,它含有只读读抽象访问 { get; } double CalcArea(); //计算圆面积方法(默认公共抽象的) } 在接口Ishape中定义了两个成员,一个是计算圆面积的方法,另一个是周长的只读属性。它们都默认为抽象的,没有方法体和get访问器;也都默认为公共的、可被外面的类型使用。 注意:由于接口成员已默认为抽象的和公共的,故接口的成员不能再显式声明为abstract和public,为规范起见,建议接口名以表示Interface含义的大写首字母I开头,如Ishape。 定义如下实现图形接口的圆类: class Circle : Ishape { private double radius; //私有半径字段 public double Radius //半径属性 { get { return radius; } set { radius = value; } } public Circle() { } public Circle(double radius) //带半径参数的构造函数 { Radius = radius; } public double CalcArea() //实现接口的计算面积方法 { return Math.PI * Math.Pow(Radius, 2); } public double Girth //实现接口只读周长属性 { get { return 2 * Math.PI * Radius; } } } 由于接口的方法和属性成员默认为public,故实现接口的类成员也要声明为public。 最后在Form1类的button1_Click中编写下面语句: Circle CircleA = new Circle(double.Parse(txtRadius.Text)); txtArea.Text = CircleA.CalcArea().ToString(); txtGirth.Text = CircleA.Girth.ToString(); 运行结果如下图所示。 注意:类的属性成员也可以没有直接对应的私有字段,比如上例中的周长属性Girth。 除了类能实现接口外,结构也可以实现接口。接口描述属于类或结构的一组相关行为。接口提供一种合约,实现接口的类或结构必须遵循其约定,但接口不能提供具体的实现方式。 使用接口,将一个方法名和方法实现彻底分离。即将做什么(what)与怎么做(how)完全区分开,便于大型软件开发的开发协作与管理。 接口有下列限制: 接口不含任何实现,没有操作性的语句,都是声明性的成员。 接口不能定义字段。 接口不能定义构造函数,也不能定义析构函数。 接口不能定义静态成员。 接口成员不能指定任何修饰符,都默认为public和abstract。 接口不能嵌套任何类型(enum、struct、class、interface),类则可以。 5.9.2 通过接口来引用类 可以定义多个接口,系统

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档