#c_sharp
Допустим, я пишу класс с реализацией десятка методов, но один из методов должен быть реализован пользователем моего класса. Иными словами мне надо принудить наследника к реализации определеного метода, в противном случае мой класс не должен работать. Как такое воплотить на языке C#? Мне сказали, что надо использовать интерфейсы, но с ними "не выходит каменный цветок".
Ответы
Ответ 1
Пометьте класс и метод, который обязателен к реализации, как абстрактные: abstract class Base { // обязателен к реализации в не-абстрактных наследниках protected abstract void SomeMethod(); // не обязателен к переопределению в наследнике protected virtual void SomeNonAbstractMethod() { } } // не-абстрактный наследник class Child : Base { // если метод не реализован - компилятор выдаст ошибку protected override void SomeMethod() { } }
Комментариев нет:
Отправить комментарий