Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Преобразование к классу интерфейса






Создать объект класса интерфейса обычным путем с использованием конструктора и операции new нельзя. Тем не менее, можно объявить объект интерфейсного класса и связать его с настоящим объектом путем приведения (кастинга) объекта наследника к классу интерфейса. Это преобразование задается явно. Имея объект, можно вызывать методы интерфейса - даже если они закрыты в классе, для интерфейсных объектов они являются открытыми. Приведу соответствующий пример, в котором идет работа как с объектами классов Clain, ClainP, так и с объектами интерфейсного класса IProps:

public void TestClainIProps(){ Console.WriteLine(" Объект класса Clain вызывает открытые методы! "); Clain clain = new Clain(); clain.Prop1(" свойство 1 объекта"); clain.Prop2(" Владимир", 44); Console.WriteLine(" Объект класса IProps вызывает открытые методы! "); IProps ip = (IProps)clain; ip.Prop1(" интерфейс: свойство"); ip.Prop2 (" интерфейс: свойство", 77); Console.WriteLine(" Объект класса ClainP вызывает открытые методы! "); ClainP clainp = new ClainP(); clainp.MyProp1(" свойство 1 объекта"); clainp.MyProp2(" Владимир", 44); Console.WriteLine(" Объект класса IProps вызывает закрытые методы! "); IProps ipp = (IProps)clainp; ipp.Prop1(" интерфейс: свойство"); ipp.Prop2 (" интерфейс: свойство", 77); }

Этот пример демонстрирует работу с классом, где все наследуемые методы интерфейса открыты, и с классом, закрывающим наследуемые методы интерфейса. Показано, как обертывание и кастинг позволяют добраться до закрытых методов класса. Результаты выполнения этой тестирующей процедуры приведены на рис. 19.1.


Рис. 19.1. Наследование интерфейса. Две стратегии






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.