After is checks, Kotlin often smart-casts without a cast expression. Java added pattern matching for instanceof — binding a variable in one step — and sealed interfaces/classes (Java 17+) to narrow types similarly to Kotlin sealed + when, though the feel differs.

Kotlin: is and smart cast
Full content is available with a subscription.
Get full access to all courses on the platform for one year with a single payment.
Unlike other platforms that charge per course, here you get everything for one price, and after one year of use there will be no automatic charge for the following year.