Интерфейс определяется как синтаксический договор, которому все классы наследующие интерфейс должны следовать. Интерфейс определяет часть 'что' синтаксического договора, а производные классы определяют часть 'как' синтаксического договора.
Интерфейсы определяют свойства, методы и события, которые являются членами интерфейса. Интерфейсы содержат только декларации членов. За определения членов несет ответственность производные классы. Это часто помогает в обеспечении стандартной структуры производных классов.
Абстрактные классы в некоторой степени служат той же цели, однако, они в основном используются, когда лишь немногие методы должны быть объявлены в базовом классе, производный класс реализует функциональность.
Интерфейсы объявляются с помощью ключевого слова interface. Это похоже на объявление класса. Интерфейс заявления являются открытыми по умолчанию. Ниже приведен пример описания интерфейса:
public interface ITransactions
{
// члены интерфейса
void showTransaction();
double getAmount();
}
Следующий пример демонстрирует реализации вышеуказанного интерфейса:
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace InterfaceApplication
{
public interface ITransactions
{
// члены интерфейса
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("Номер сделки: {0}", tCode);
Console.WriteLine("Дата: {0}", date);
Console.WriteLine("Стоимость: {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();
}
}
}
Если приведенный выше код скомпилировать и выполнить, это приведет к следующему результату:
Номер сделки: 001
Дата: 8/10/2012
Стоимость: 78900
Номер сделки: 002
Дата: 9/10/2012
Стоимость: 451900