Chuyển tới nội dung chính

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
  • Interface là TypeC
  • Màn hình Dell, màn hình HP, màn hình ThinkPad là Implementation củ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.