Implements vs extends: khi nào nên sử dụng? có gì khác biệt?