5 / 5 / 4
Регистрация: 28.04.2014
Сообщений: 37
|
|||||||||||||||||||||||||||||||
1 | |||||||||||||||||||||||||||||||
.NET 4.x Динамическое наследование интерфейсов28.04.2014, 10:15. Показов 2619. Ответов 8
Метки нет (Все метки)
В книге "Паттерны программирования" нашел интересную тему на Java про динамическое наследование интерфейсов. Попобовал реализовать это на C#, к сожалению не получилось. Вот код суперкласса на Java.
Теперь код на C#. Класс-родитель
0
|
28.04.2014, 10:15 | |
Ответы с готовыми решениями:
8
Наследование и реализация интерфейсов Возможно ли наследование интерфейсов? BindingFlags и наследование интерфейсов Наследование интерфейсов структурами |
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
|
||||||
28.04.2014, 10:21 | 2 | |||||
0
|
5 / 5 / 4
Регистрация: 28.04.2014
Сообщений: 37
|
|
28.04.2014, 10:26 [ТС] | 4 |
Это я и сам попробовал сделать, но на этапе компиляции получил такую ошибку "Несовместимость по доступности: доступность типа поля "ClassDuck.IFlyBehavior" ниже доступности поля "ClassDuck.Duck.flyBechavior"
0
|
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
|
|
28.04.2014, 10:34 | 5 |
А интерфейс IFlyBehavior у вас имеет какие-либо модификаторы? Если нет то пометьте его public.
Добавлено через 1 минуту Либо же снимите public-модификатор с класса Duck.
0
|
5 / 5 / 4
Регистрация: 28.04.2014
Сообщений: 37
|
|
28.04.2014, 10:45 [ТС] | 6 |
Теперь возникает ошибка на этапе выполнения. При вызове метода performFly() ошибка "Необработанное исключение: Ссылка на объект не указывает на экземпляр объекта."
И в принципе, я могу понять это сообщение. Ведь в классе Duck объекта не создается, только объектная переменная, видимо это C# и не нравиться
0
|
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
|
||||||
28.04.2014, 10:50 | 7 | |||||
Сообщение было отмечено S_Schmal как решение
РешениеПросмотрите свой код и найдите 5 отличий
1
|
28.04.2014, 10:58 | 8 | |||||
Сообщение было отмечено S_Schmal как решение
Решение
Kruds, Аналогично.
1
|
5 / 5 / 4
Регистрация: 28.04.2014
Сообщений: 37
|
|
28.04.2014, 12:03 [ТС] | 9 |
Спасибо, ребята! Работают оба варианта. Честноо говоря, так и не понял, что у меня было не так, т.к. на первый взгляд у меня и у вас код одинаков. Причем даже у интерфейса IFlyBehavior модификатор public не понадобился.
0
|
28.04.2014, 12:03 | |
28.04.2014, 12:03 | |
Помогаю со студенческими работами здесь
9
Диаграмма классов - наследование интерфейсов Реализация, наследование классов и интерфейсов Организовать множественное наследование с использованием интерфейсов Интерфейсное наследование: Что, если в цепочке иерархии интерфейсов в каждом из них есть одноименный метод Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |