Причудливый вопрос:
Представьте, что у меня есть базовый класс BaseFoo. У меня есть интерфейс с некоторыми методами под названием IFoo. И у меня есть тонны классов ниже BaseFoo.
Если я реализую интерфейс в BaseFoo, мне не нужно реализовывать в унаследованных классах, правильно?
Хорошо, но представьте, что у меня есть общая функция, которая будет обрабатывать IFoo. Нужно ли явно заявлять, что они реализуют IFoo?
Вот так (псевдо-иллюстративный код)
public class BaseFoo:IFoo;
public interface IFoo;
Должен ли я сделать это?
public class AmbarFoo:BaseFoo,IFoo
или
public class AmbarFoo:BaseFoo
Какой самый правильный путь? Эффекты одинаковы? Если я проверю, является ли AmbarFoo IFoo, что я получу?
Спасибо