Inheritance
lPrefer finality
(at least on methods)
lFactories and interfaces
lThe proper use of protected