Trong bài viết này, chúng ta sẽ tìm hiểu sự khác biệt giữa Class (lớp) và Interface (giao diện) trong Java.
Class
- Định nghĩa thuộc tính (attributes) và hành vi (behaviors) của object
- Chứa cả abstract method và normal method
- Từ khóa: 'class'
- Có thể instantiate (tạo instance)
- KHÔNG hỗ trợ đa kế thừa (multiple inheritance)
- Có thể kế thừa một class khác (extends)
- Tên class cha đi sau từ khóa 'extends'
- Member có thể public, private, protected
- Body class bao bởi '{' và '}'
- Variable có thể static, final, hoặc bình thường
Interface
- Chứa hành vi được implement bởi class
- Từ khóa: 'interface'
- KHÔNG thể instantiate
- Hỗ trợ đa kế thừa
- Chỉ chứa abstract method (từ Java 8 có default/static method)
- Dùng 'extends' để kế thừa interface khác
- Tất cả variable đều static và final
- KHÔNG thể kế thừa class
- Là bản thiết kế (blueprint) cho class
- Định nghĩa class PHẢI LÀM GÌ, không định nghĩa CÁCH LÀM
- Member mặc định public