WEB开发网
开发学院软件开发C语言 C# 语法练习(15): 接口 阅读

C# 语法练习(15): 接口

 2009-02-23 08:18:53 来源:WEB开发网   
核心提示:接口只声明、无实现、不能实例化;接口可包含方法、属性、事件、索引器, 但无字段;接口成员都是隐式的 public, 不要使用访问修饰符;类、结构和接口都可以继承多个接口;继承接口的类必须实现接口成员, 除非是抽象类;类实现的接口成员须是公共的、非静态的.入门示例:using System;interface MyInt

接口只声明、无实现、不能实例化;

接口可包含方法、属性、事件、索引器, 但无字段;

接口成员都是隐式的 public, 不要使用访问修饰符;

类、结构和接口都可以继承多个接口;

继承接口的类必须实现接口成员, 除非是抽象类;

类实现的接口成员须是公共的、非静态的.

入门示例:

using System;

interface MyInterface
{
  int Sqr(int x);
}

class MyClass : MyInterface
{
  public int Sqr(int x) { return x * x; }
}


class Program
{
  static void Main()
  {
    MyClass obj = new MyClass();
    Console.WriteLine(obj.Sqr(3)); // 9

    MyInterface intf = new MyClass();
    Console.WriteLine(intf.Sqr(3));

    Console.ReadKey();
  }
}

一个接口得到不同的实现:

using System;

interface MyInterface
{
  int Method(int x, int y);
}

class MyClass1 : MyInterface
{
  public int Method(int x, int y) { return x + y; }
}

class MyClass2 : MyInterface
{
  public int Method(int x, int y) { return x - y; }
}


class Program
{
  static void Main()
  {
    MyInterface intf1 = new MyClass1();
    MyInterface intf2 = new MyClass2();

    Console.WriteLine(intf1.Method(3, 2)); // 5
    Console.WriteLine(intf2.Method(3, 2)); // 1

    Console.ReadKey();
  }
}

显示实现接口(接口名.方法):

using System;

interface MyInterface1
{
  void Method();
}

interface MyInterface2
{
  void Method();
}


class MyClass : MyInterface1, MyInterface2
{
  /* 显示实现接口不需要访问修饰符; 但显示实现的方法只能通过接口访问 */
  void MyInterface1.Method() { Console.WriteLine("MyInterface1_Method"); }
  void MyInterface2.Method() { Console.WriteLine("MyInterface2_Method"); }
}


class Program
{
  static void Main()
  {
    MyInterface1 intf1 = new MyClass();
    MyInterface2 intf2 = new MyClass();

    intf1.Method(); // MyInterface1_Method
    intf2.Method(); // MyInterface2_Method

    Console.ReadKey();
  }
}

Tags:语法 练习 接口

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接