C# 接口

  • 接口

    接口定义为所有继承该接口的类都应遵循的语法约定。接口定义了语法契约的“抽象”部分,派生类定义了语法契约的“实现”部分。接口定义属性,方法和事件,它们是接口的成员。接口仅包含成员的声明。定义成员是派生类的责任。它通常有助于提供派生类将遵循的标准结构。抽象类在某种程度上具有相同的目的,但是,它们仅在基类仅声明很少的方法且派生类实现功能时才使用。
  • 声明接口

    使用interface关键字声明接口。它类似于类声明。默认情况下,接口语句是公共的。以下是接口声明的示例-
    
    public interface ITransactions {
       // interface members
       void showTransaction();
       double getAmount();
    }
    
    以下示例演示了上述接口的实现-
    
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System;
    
    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/2012", 78900.00);
             Transaction t2 = new Transaction("002", "9/10/2012", 451900.00);
             
             t1.showTransaction();
             t2.showTransaction();
             Console.ReadKey();
          }
       }
    }
    
    尝试一下
    编译并执行上述代码后,将产生以下结果-
    
    Transaction: 001
    Date: 8/10/2012
    Amount: 78900
    Transaction: 002
    Date: 9/10/2012
    Amount: 451900