You are on page 1of 1

- Giống nhau:

“Abtract” và “Interface” đều là cấu trúc cơ bản cho phép định nghĩa các
hành vi mà các lớp khác có thể triển khai hoặc kế thừa

- Khác nhau
Tiêu chí Abstract Class Interface
Mục đích Mô tả các đặc tính chung của lớp Định nghĩa hợp đồng về
có nhóm quan hệ hành vi mà các lớp khác
cần triển khai
Kế thừa/triển Chỉ có thể kế thừa từ một abstract Có thể triển khai nhiều
khai class. interface
Thành viên Có thể triển khai nhiều interface Ban đầu chỉ chứa phương
thức trừu tượng; hiện có
thể chứa cả phương thức
mặc định
Truy cập Có cấp độ truy cập khác nhau Thường là public
(private, protected, public)
Sử dụng trong Khi các lớp con chia sẻ nhiều logic Khi các lớp chia sẻ một
thiết kế hoặc trạng thái giao diện chung nhưng
không cần logic hoặc
trạng thái chung
Trạng thái và Có thể chứa biến instance Có thể chứa biến static
hành vi final (constants)
Tính Trừu Có thể kết hợp cả phương thức trừu Ban đầu chỉ dành cho
Tượng tượng và không trừu tượng. phương thức trừu tượng;
hiện tại có thêm phương
thức mặc định và static
Sự Đa Dạng Hỗ trợ một mức độ đa dạng hóa Cung cấp sự đa dạng hóa
Hóa nhất định thông qua kế thừa cao qua nhiều interface
Thiết Kế Lớp Lớp con kế thừa từ abstract class Lớp triển khai interface
Con phải triển khai tất cả phương thức phải triển khai tất cả
trừu tượng (nếu có) của nó phương thức trừu tượng
của interface đó

You might also like