Interfaces and the difference between implements and extends