Страницы

Поиск по вопросам

вторник, 7 апреля 2020 г.

Принуждение к реализации в производных классах

#c_sharp

                    
Допустим, я пишу класс с реализацией десятка методов, но один из методов должен быть
реализован пользователем моего класса. Иными словами мне надо принудить наследника
к реализации определеного метода, в противном случае мой класс не должен работать.
Как такое воплотить на языке C#?
Мне сказали, что надо использовать интерфейсы, но с ними "не выходит каменный цветок". 
    


Ответы

Ответ 1



Пометьте класс и метод, который обязателен к реализации, как абстрактные: abstract class Base { // обязателен к реализации в не-абстрактных наследниках protected abstract void SomeMethod(); // не обязателен к переопределению в наследнике protected virtual void SomeNonAbstractMethod() { } } // не-абстрактный наследник class Child : Base { // если метод не реализован - компилятор выдаст ошибку protected override void SomeMethod() { } }

Комментариев нет:

Отправить комментарий