- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 通过接口来引用类
可以定义多个接口,系统
您可能关注的文档
- Gossip Girl经典台词(英汉双语).doc
- Nine Girls教学详案.doc
- GIS实验操作步骤2.doc
- 吴伟仁的英国文学史及选读.doc
- Mplayer slave模式协议.doc
- cisco asa 8.2与8.4的nat区别.docx
- 国际留学生培养方案(纯英文版).docx
- .net GridView 常用用法.doc
- 强烈推荐劳动关系管理(HRM).doc
- 苏州市2014年中考英语模拟试题(五)含答案.doc
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)