Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

substitution principle

Code written for a superclass must keep working, every promise kept, with any subclass object.

A subtype must honor every contract of its supertype; a subclass that breaks one (a mutable Square changing its height) is not a valid substitute.

Read the full section →