Learning about abstract classes and traits. I like the similarities with Rust's interfaces and Haskell's type classes.