- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七讲 接 口
?为什么引入接口。
组件技术,组件对象模型COM, COM+ 事务服务器MTS , 应用程序编程接口API.
7.1接口
抽象类--------〉接口
Public abstract class csharp
{
Public abstract long Area();
Public abstract long f();
Public abstract long g();
} Public interface Isharp
{
long Area();
long f();
long g();
} 7.1.1 类和接口的比较
1、接口类似纯抽象类。
2、接口不提供任何实现的代码,提供规范,不提供细节。
3、接口成员只包含方法,属性和索引器,不包含数据成员。
7.1.2使用接口
1、类可以实现多个接口。
2、解决了多重继承问题。
7.1.3使用接口的好处
1、多重继承
2、给类添加了固定的特征,并必须实现之。
7.2定义接口
基本结构:
Interface Iname
{
接口成员;
}
说明:借口中的成员是公有的,(public).
7.2.1定义带方法成员的接口
定义一个接口
Public interface Isharp
{
double Area();
double Circumference();
Int Sides();
}
例:
using System;
public interface IShape
{ double Area();
double Circumference();
Int Sides();
}
public class Circle : IShape
{ public int x;
public int y;
public double radius;
private const float PI = 3.14159F;
public double Area() //每个方法的参数类型和接口必须保持一致
{ double theArea;
theArea = PI * radius * radius;
return theArea; }
public double Circumference()
{ return ((double) (2 * PI * radius));
}
public int Sides()
{ return 1;
}
public Circle()
{ x = 0;
y = 0;
radius = 0.0;
}
}
public class Square : IShape
{
public int side;
public double Area()
{
return ((double) (side * side));
}
public double Circumference()
{
return ((double) (4 * side));
}
public int Sides()
{
return 4;
}
public Square()
{
side = 0;
}
}
public class myApp
{
public static void Main()
{
Circle myCircle = new Circle();
myCircle.radius = 5;
Square mySquare = new Square();
mySquare.side = 4;
Console.WriteLine(Displaying Circle information:);
displayInfo(myCircle);
Console.WriteLine(\nDisplaying Square information:);
displayInfo(mySquare);
}
static void displayInfo( IShape myShape ) //能接受任何实现了接口的对象。
{
Console.WriteLine(Area: {0}, myShape.Area());
Console.WriteLine(S
文档评论(0)