L Liskov Substitution Principle LSP · TL;DR
1 min readRapid overview
TL;DR
LSP says any implementation of an interface must be usable wherever the interface is expected, without surprises. Throwing "not supported" from a method you were forced to declare is the classic violation — it pushes type-shaped runtime bugs onto every caller and defeats the point of polymorphism.