Интерфейс C # Реализация - это просто «Can-Do»?

Сегодня кто-то сказал мне, что реализация интерфейса в C # - это просто отношение «Can-Do», а не «Is-A». Это противоречит моей давней вере в ЛСП (принцип замещения Лискова). Я всегда думаю, что все наследство должно означать отношения "Is-A".

Итак, если реализация интерфейса - это просто отношение «Can-Do». Что если есть интерфейс "IHuman" и "IEngineer", а один класс "Programmer" наследуется от "IHuman" и "IEngineer"? Конечно, "Программист" - это "IHuman" и "IEngineer".

Если это просто отношение «Can-Do», значит ли это, что мы не можем ожидать, что поведение экземпляра «Programmer» может отличаться, если рассматривать его как IHuman и IEngineer?

Ответы на вопрос(5)

Ваш ответ на вопрос