Об интерфейсах и их роли в программировании мы с Вами уже не раз говорили, почитайте шаги "Шаг 108 - Универсальные классы", "N/A", "N/A", "N/A". Там есть общие идеи, а мы посмотрим как в C# можно работать с интерфейсами. Смотрим код.
using System; interface ITest { string Test(); } class MyTest : ITest { public string Test() { return "Hello interface"; } } class MainClass { public static void Main(string[] args) { MyTest test = new MyTest(); Console.WriteLine(test.Test()); } }
Итак, интерфейс это набор абстрактных методов без реализации. Они в С# могут содержать методы, свойства и индексаторы. В нашем примере мы создали интерфейс ITest и описали в нем методы. Потом на основе этого интерфейса создали рельный класс MyTest где эти методы реализовали. А дальше использовали его в программе. В С# запрещено множественное наследование, подобные возможности должны достигаться наследование нескольких интерфейсов. Вот на такой код компилятор будет давать ошибку.
class P1 { } class P2 { } class MyTest : P1,P2, ITest Error { public string Test() { return "Hello interface"; } }
Он скажет, что P2 не интерфейс. А вот множественное наследование интерфейсов разрешено. Код приведенный ниже будет работать без ошибок.
interface ITest { string Test(); } interface IP1 { } class P2 { } class MyTest : P2,IP1, ITest { public string Test() { return "Hello interface"; } }