Day 18/90: Polymorphism

Today's note was about using polymorphism to make object boundaries and state transitions easier to trust. I kept coming back to the same checks: constructors that lock in valid state, type boundaries that explain ownership, and abstractions that remove duplication without hiding behavior.

The failure mode worth watching is using inheritance or interfaces before deciding which type actually owns the behavior.…