Phân biệt Interface và Abstract class
2. Thế nào là contract?
Về ý nghĩa nói chung, interface trong lập trình như là cách giao tiếp giữa các component, nó ẩn phần implementation. Lấy 1 ví dụ đời thường, coi như chuẩn TypeC kết nối giữa máy tính và màn hình là 1 interface.
- Máy tính là
Client Interfacelà TypeC- Màn hình Dell, màn hình HP, màn hình ThinkPad là
Implementationcủa Interface
TypeC định nghĩa là tất cả các màn hình mà có theo chuẩn TypeC thì đều phải có 2 method là: âm thanh sound() và hình ảnh display(), để khi máy tính kết nối vào bất kỳ cái màn hình nào cũng sẽ gọi được 2 method này. Contract ở đây là hợp đồng giữa client và interface. Nhiệm vụ của interface lúc này là sẽ force (ép buộc) tất cả các implementation phải tuân theo bản hợp đồng đó –> compile error nếu implementation nào ko override method của interface.
