Использование нескольких интерфейсов

Позвольте мне придерживаться ясности в изложении этого вопроса, поскольку множественное наследование обсуждали во многих группах новостей и рассылках: С# не поддерживает множественное наследование. Но вы можете объединять характеристики поведения Нескольких программных сущностей, реализовав несколько интерфейсов. Об интерфейсах и способах работы с ними см. главу 9. А пока вы можете думать об интерфейсах на С#, как вы думаете о СОМ-интерфейсах. С учетом этого следующая программа ошибочна:




class Foo

{

}

class Bar

<

>

class MITest : Foo, Bar {

public static void Main ()

{

} }

Допущенная в этом примере ошибка связана со способом реализации интерфейсов. Интерфейсы, выбранные для реализации, перечисляются после базового класса данного класса. В этом примере компилятор С# думает, что Ваг должен быть интерфейсом. Поэтому компилятор С# выдаст вам сообщение об ошибке:


'Bar':type in interface list is not an interface

Следующий, более реалистичный, пример абсолютно верен, так как класс MyFancyGrid происходит от Control и реализует интерфейсы ISeria-lizable и IDataBound:


class Control

{

}

interface ISerializable

{

}

interface IDataBound

{

}

class MyFancyGrid : Control, ISerializable, IDataBound

{

}



Главное здесь то, что единственным способом реализации чего-либо, напоминающим множественное наследование, на С# является применение интерфейсов.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: