Шаг 31 - Интерфейсы

Об интерфейсах и их роли в программировании мы с Вами уже не раз говорили, почитайте шаги "Шаг 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";
	}
}

Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 01.10.2001