C#接口
接口被定義為所有繼承接口的類應遵循一個語法契約。接口定義的語法, 契約“是什麼”的一部分,在派生類中定義的語法契約'如何'的一部分。
接口定義屬性,方法和事件,這是接口的成員。接口包含的成員隻有聲明。它是派生類的定義成員的責任。它常常有助於提供的派生類將遵循一個標準結構。
抽象類在一定程度上達到相同的目的,然而,也大多使用時隻有很少的方法是由基類被聲明和所述導出類實現的功能。
聲明接口
接口使用interface關鍵字聲明。它類似於類的聲明。接口聲明默認為公有(public)。以下是一個接口聲明的例子:
public interface ITransactions { // interface members void showTransaction(); double getAmount(); }
例子
下麵的例子演示了實現上述接口:
using System.Collections.Generic; using System.Linq; using System.Text; namespace InterfaceApplication { public interface ITransactions { // interface members void showTransaction(); double getAmount(); } public class Transaction : ITransactions { private string tCode; private string date; private double amount; public Transaction() { tCode = " "; date = " "; amount = 0.0; } public Transaction(string c, string d, double a) { tCode = c; date = d; amount = a; } public double getAmount() { return amount; } public void showTransaction() { Console.WriteLine("Transaction: {0}", tCode); Console.WriteLine("Date: {0}", date); Console.WriteLine("Amount: {0}", getAmount()); } } class Tester { static void Main(string[] args) { Transaction t1 = new Transaction("001", "8/10/2014", 78900.00); Transaction t2 = new Transaction("002", "9/10/2014", 451900.00); t1.showTransaction(); t2.showTransaction(); Console.ReadKey(); } } }
讓我們編譯和運行上麵的程序,這將產生以下結果:
Transaction: 001 Date: 8/10/2014 Amount: 78900 Transaction: 002 Date: 9/10/2014 Amount: 451900