Introduction
Default method implementations let you write a method once and reuse it in many places. This saves time and keeps your code simple.
When you want to provide a common behavior for many types but allow them to change it if needed.
When you create a trait and want to give a default way to do something.
When you want to avoid repeating the same code in every type that uses a trait.