Lớp trừu tượng so với giao diện
Lớp trừu tượng (hoặc loại) là một loại trong một hệ thống loại chỉ định được chương trình khai báo. Mặc dù tên ngụ ý như vậy, một lớp trừu tượng có thể hoặc không bao gồm các phương thức hoặc thuộc tính trừu tượng. Lớp phân biệt đề cập đến các cấu trúc ngôn ngữ khác nhau có thể được sử dụng để thực hiện các kiểu trừu tượng. Các lớp trừu tượng có thể được đặc trưng bởi một vấn đề thiết kế phù hợp với lập trình hướng đối tượng tốt nhất và bởi bản chất chưa hoàn thành của chúng.
Giao diện là một kiểu trừu tượng mà các lớp phải triển khai để chỉ định một giao diện (nói chung). Các giao diện chỉ có thể chứa chữ ký phương thức và khai báo không đổi (cả tĩnh và cuối), không bao giờ định nghĩa phương thức. Các giao diện mô phỏng nhiều kế thừa và được sử dụng để mã hóa các điểm tương đồng được chia sẻ giữa các loại lớp khác nhau.
Các loại trừu tượng có thể được tạo, biểu thị hoặc mô phỏng theo nhiều cách khác nhau. Một lập trình viên có thể biểu thị các kiểu trừu tượng bằng cách sử dụng từ khóa trừu tượng một cách rõ ràng, bằng cách bao gồm một hoặc nhiều phương thức trong định nghĩa lớp, kế thừa từ một kiểu trừu tượng khác mà không ghi đè các tính năng bị thiếu cần thiết để hoàn thành định nghĩa lớp hoặc bằng cách gửi một phương thức cụ thể đến hướng đối tượng ngôn ngữ lập trình được gọi là không thực hiện phương pháp này trực tiếp.
Các giao diện có thể được xác định bằng các phương pháp trừu tượng. Các lớp học cũng có thể được thực hiện trong các giao diện. Nếu một lớp thực hiện một giao diện và không thực hiện tất cả các phương thức của nó, thì phải sử dụng tóm tắt ký hiệu, nếu không thì ký hiệu đó là không cần thiết (vì tất cả các giao diện đều là trừu tượng). Các lớp cũng có thể thực hiện nhiều giao diện.
Trong khi các giao diện được sử dụng để chỉ định các giao diện chung, các loại trừu tượng có thể được sử dụng để xác định và thực thi giao thức (là một tập hợp các hoạt động mà tất cả các đối tượng thực hiện giao thức mong muốn phải hỗ trợ). Các loại trừu tượng không xảy ra trong các ngôn ngữ mà không có phân nhóm. Vì các kiểu con như vậy buộc phải thực hiện tất cả các chức năng cần thiết, đảm bảo tính chính xác của việc thực hiện chương trình. Có một số cách trong đó các kiểu trừu tượng có thể được tạo ra: các lớp cơ sở trừu tượng đầy đủ là các lớp được khai báo rõ ràng là trừu tượng hoặc chứa các phương thức trừu tượng (không thực hiện); Hệ thống đối tượng Lisp phổ biến bao gồm các mixin dựa trên hệ thống Flavours; Java, tất nhiên; và Traits, hoạt động như một phần mở rộng cho Smalltalk.
Tóm lược:
1. Các lớp trừu tượng (hoặc loại) khai báo chương trình; giao diện là loại trừu tượng mà tất cả các lớp phải thực hiện để chỉ định giao diện của chúng.
2. Các loại trừu tượng có thể được biểu thị bằng cách sử dụng từ khóa một cách rõ ràng; các giao diện vốn đã trừu tượng, do đó không cần phải biểu thị bằng cách sử dụng từ khóa (trừ khi một lớp cụ thể thực hiện một giao diện nhưng không thực hiện tất cả các phương thức của nó).