Module 7: Advanced Object-Oriented Concepts
Casting, instanceof, and Pattern Matching
Use safe casting techniques, pattern matching, and `sealed` classes to enforce invariants.
Prefer instanceof pattern matching (if (obj instanceof Order order)) to reduce explicit casts and improve clarity.
Downcasting couples code to specific subclasses; wrap behaviors in polymorphic methods instead when possible.
Sealed classes (Java 17+) restrict which classes may extend a base type, enabling exhaustive switch expressions.