接口学习

接口:描述可属于任何类或结构的一组相关功能,通过interface关键字来声明; 接口只包含方法、委托或事件和属性的签名(接口包含的成员)、不能包含字段(因为字段是包含数据的)。方法的实现是“继承”接口的类中完成的; 接口可以包含的成员的访问修饰符只能且默认为public; 一个接口可以从一个或多个基接口继承; 接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员; 当基类型列表包含基类和接口时,基类必须是列表中的第一项; 实现接口的类可以显式实现该接口的成员,显示实现的成员不能通过类实例访问,而只能通过接口实例访问; 类和结构可以按照类继承基类或结构的类似方式继承接口;但注意: 类或结构可继承多个接口; 类或结构继承接口时,仅继承方法名称和签名,因为接口本身不包含实现; 接口和接口成员是抽象的(但不用写出abstract关键字);接口不提供默认实现; 接口是一种规划(为你定义出一系列的规则和任务,但不去实现它); 先看一个实例: interface IPoint { // Property signatures: int x { get; set; } int y { get; set; } } class Point : IPoint { // Fields: private int _x; private int _y; // Constructor: public Point(int x, int y) { _x = x; _y = y; } // Property implementation: public int x { get { return _x; } set { _x = value; } } public int y { get { return _y; } set { _y = value; } } } class MainClass { static void PrintPoint(IPoint p) { Console.WriteLine("x={0}, y={1}", p.x, p.y); } static void Main() { Point p = new Point(2, 3); Console.Write("My Point: "); PrintPoint(p); } } // Output: My Point: x=2, y=3
posted @ 2011-03-16 22:37  鱼翅粥  阅读(302)  评论(0编辑  收藏  举报