Guard statement: an early if...return that handles a bad/edge case up front
break: immediately exits the nearest loop
Abstract class: a parent that can't be new'd (instantiated) directly — only its children can. Extending makes a new child class from the parent -- inheriting the methods and fields.
Siblings: two subclasses of the same parent, each with their own override