Cùng sharecs tìm hiểu và so sánh interface và abstract giống và khác nhau như thế nào trong java nhé.
So sánh interface và abstract
Giống nhau
- Đều được sử dụng để đạt được được tính trừu tượng trong lập trình hướng đối tượng ( OOP )
- Đều được sử dụng trong kế thừa
- Đều có thể chứa cả phương thức và các trường dữ liệu ( variables )
- Đều không thể tạo đối tượng cụ thể của chúng với keyword new
Khác nhau
Tiêu chí | Abstract class | Interface |
---|---|---|
Keyword abstract | Phải khai báo tường minh | Mặc định là abstract |
Các kiểu biến | Có thể chứa mọi loại biến: final, non-final, static, non-static | Chỉ có thể chứa những hằng số: final và static |
Hằng số | Có thể có hoặc không | Mặc định tất cả các biêns trong interface đều là hằng số |
Loại phương thức | Hỗ trợ tất cả các loại phương thức: Constructor, static, non-static, abstract | Chỉ chứa các phương thức abstract, default, static, private |
Sự triển khai lẫn nhau | Abstract có thể cung cấp các triển khai cho Interface | Interface không thể cung cấp các triển khai cho Abstract |
Đa kế thừa | Không hỗ trợ đã kế thừa với lớp khacs ( chỉ kế thừa được từ 1 lớp ) | Một Interface có thể kế thừa nhiều Interface khác |
Đa thực thi | Abstract class có thể extendss lớp khác và implements nhiều Interface tùy ý | Interface chỉ có thể extends nhiều Interface khác |
Access modifiers | Hỗ trợ tất cả các loại Access modifiers | Mặc định các thành phần của Interface là public, từ java 9+ hỗ trợ thêm private |
Constructor | Có hỗ trợ Constructor | Không hỗ trợ Constructor |
Mục đính | Làm lớp cha chung của một nhóm các lớp có liên quan | Định ra hành động có thể dùng chung các lớp ( các lớp không có hoặc có liên quan với nhau ) |
Cảm ơn các bạn đã ghé thăm. Chúc các bạn thành công!