程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#語法練習(15): 接口

C#語法練習(15): 接口

編輯:關於C#

接口只聲明、無實現、不能實例化;

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

接口成員都是隱式的 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();
   }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved