LSP заявляет, что классы должны быть заменяемы для их базовых классов, что означает, что производные и базовые классы должны быть семантически эквивалентными.Принцип замены Лискова также применим к классам, реализующим интерфейс?
Но применим ли LSP к классам, реализующим интерфейс? Другими словами, если метод интерфейса , реализованный классом, семантически отличается от того, что пользователь ожидает от него, будет ли это рассматриваться как нарушение LSP?
Спасибо
Да, по крайней мере, в java. http://stackoverflow.com/questions/7072290/in-what-ways-are-subtypes-different-from-subclasses-in-usage –
@Ray Tayek: Если бы это было признано нарушением на Java, то я предполагаю, что это также является нарушением в C#? В любом случае, вы говорите прямо противоположное тому, что говорит Finglas - теперь я немного смущен – user702769
зависит от вашего определения http://en.wikipedia.org/wiki/Subtype_polymorphism –