[Java Core] Interface và Abstract Class trong Java: khác gì nhau

Tốc độ

Chậm

Nhanh

Nhiều kế thừa

Thực hiện một số giao diện

Chỉ có một lớp trừu tượng

Kết cấu

Phương pháp trừu tượng

Phương pháp trừu tượng và cụ thể

Khi nào sử dụng

Nâng cao trong tương lai

Để tránh độc lập

Kế thừa / Thực hiện

Một lớp có thể thực hiện nhiều giao diện

Lớp chỉ có thể kế thừa một Lớp trừu tượng

Thực hiện mặc định

Trong khi thêm các công cụ mới vào giao diện, thật là một cơn ác mộng khi tìm thấy tất cả những người triển khai và thực hiện các công cụ mới được xác định.

Trong trường hợp của Lớp trừu tượng, bạn có thể tận dụng việc triển khai mặc định.

Sửa đổi truy cập

Giao diện không có sửa đổi truy cập. 

Tất cả mọi thứ được xác định bên trong giao diện được giả định là công cụ sửa đổi.

Lớp trừu tượng có thể có một sửa đổi truy cập.

Khi nào sử dụng

Tốt hơn là sử dụng giao diện khi các triển khai khác nhau chỉ chia sẻ chữ ký phương thức. 

Phân cấp đa hình của các loại giá trị.

Nó nên được sử dụng khi các triển khai khác nhau cùng loại có chung một hành vi.

Các trường dữ liệu

giao diện không thể chứa các trường dữ liệu.

lớp có thể có các trường dữ liệu.

Nhiều kế thừa mặc định

Một lớp có thể thực hiện nhiều giao diện.

Một lớp chỉ kế thừa một lớp trừu tượng.

Thực hiện

Một giao diện là trừu tượng để nó không thể cung cấp bất kỳ mã nào.

Một lớp trừu tượng có thể cung cấp mã hoàn chỉnh, mặc định cần được ghi đè.

Sử dụng công cụ sửa đổi Access

Bạn không thể sử dụng công cụ sửa đổi truy cập cho phương thức, thuộc tính, v.v.

Bạn có thể sử dụng một lớp trừu tượng có chứa các sửa đổi truy cập.

Sử dụng

Các giao diện giúp xác định các khả năng ngoại vi của một lớp.

Một lớp trừu tượng định nghĩa danh tính của một lớp.

Các trường được xác định

Không có trường nào có thể được định nghĩa

Một lớp trừu tượng cho phép bạn xác định cả hai trường và hằng

Di sản

Một giao diện có thể kế thừa nhiều giao diện nhưng không thể kế thừa một lớp.

Một lớp trừu tượng có thể kế thừa một lớp và nhiều giao diện.

Xây dựng hoặc phá hủy

Một giao diện không thể khai báo các hàm tạo hoặc hàm hủy.

Một lớp trừu tượng có thể khai báo các hàm tạo và hàm hủy.

Giới hạn của tiện ích mở rộng

Nó có thể mở rộng bất kỳ số lượng giao diện.

Nó có thể mở rộng chỉ một lớp hoặc một lớp trừu tượng tại một thời điểm.

Từ khóa trừu tượng

Trong một từ khóa giao diện trừu tượng, là tùy chọn để khai báo một phương thức là một trừu tượng.

Trong một lớp trừu tượng, từ khóa trừu tượng là bắt buộc để khai báo một phương thức là một trừu tượng.

Loại lớp

Một giao diện có thể chỉ có các phương thức trừu tượng công khai.

Một lớp trừu tượng có các phương thức trừu tượng được bảo vệ và công khai.