Sự Khác Nhau Giữa Abstract Class Và Interface - Học Java Miễn Phí ...
Có thể bạn quan tâm
Nội dung chính
- Sự khác nhau giữa Abstract class và Interface
- Ví dụ về abstract class và interface trong java
Sự khác nhau giữa Abstract class và Interface
Abstract class và interface đều được sử dụng để có được sự trừu tượng mà ở đó chúng ta có thể khai báo các phương thức trừu tượng. Nhưng có một vài sự khác nhau giữa abstract class và interface được liệt kê trong bảng sau:
| Abstract class | Interface |
|---|---|
| 1) Abstract class có phương thức abstract (không có thân hàm) và phương thức non-abstract (có thân hàm). | Interface chỉ có phương thức abstract. Từ java 8, nó có thêm các phương thức default và static. |
| 2) Abstract class không hỗ trợ đa kế thừa. | Interface có hỗ trợ đa kế thừa |
| 3) Abstract class có các biến final, non-final, static and non-static. | Interface chỉ có các biến static và final. |
| 4) Abstract class có thể cung cấp nội dung cài đặt cho phương thức của interface. | Interface không thể cung cấp nội dung cài đặt cho phương thức của abstract class. |
| 5) Từ khóa abstract được sử dụng để khai báo abstract class. | Từ khóa interface được sử dụng để khai báo interface. |
| 6) Ví dụ: public abstract class Shape { public abstract void draw(); } | Ví dụ: public interface Drawable { void draw(); } |
Đơn giản để hiểu, đó là abstract class có được trừu tượng 1 phần (0 tới 100%), còn interface có được trừu tường toàn phần (100%).
Ví dụ về abstract class và interface trong java
Ví dụ sau là sự kết hợp giữa abstract class và interface.
//tạo interface có 4 phương thức interface A { void a(); abstract void b(); public void c(); public abstract void d(); } // tạo abstract class cung cấp cài đặt cho một phương thức của interface A abstract class B implements A { public void c() { System.out.println("I am C"); } } // tạo subclass của abstract class B, cung cấp cài đặt cho các phương thức còn lại class M extends B { public void a() { System.out.println("I am a"); } public void b() { System.out.println("I am b"); } public void d() { System.out.println("I am d"); } } // tạo lớp Test5 để gọi các phương thức của interface A public class Test5 { public static void main(String args[]) { A a = new M(); a.a(); a.b(); a.c(); a.d(); } }Output:
I am a I am b I am C I am d Interface trong java Tính đóng gói trong javaTừ khóa » Khác Nhau Giữa Abstract Class Và Interface Khi Nào Dùng Chúng
-
Khác Nhau Giữa Abstract Class Và Interface Khi Nào Dùng Chúng - Viblo
-
Abstract Class Và Interface, Bạn Có Thực Sự Hiểu Chúng ? - Viblo
-
So Sánh Abstract Class Và Interface, Khi Nào Dùng Chúng - Hoclaptrinh
-
Bạn Thực Sự đã Biết Khi Nào Dùng Interface Khi Nào Dùng Abstract?
-
So Sánh Abstract Class Và Interface - Học Lập Trình Cùng CodeGym
-
Phân Biệt Abstract Và Interface Trong Học Lập Trình Java - Le Vu Nguyen
-
Interface Và Abstract Class | TopDev
-
Sự Khác Nhau Giữa Abstract Class Và Interface - Học Java - CodeGym
-
Khác Nhau Giữa Abstract Class Và Interface Khi Nào Dùng Chúng
-
Xu Hướng 7/2022 # Sự Khác Nhau Giữa Abstract Class Và Interface ...
-
Xu Hướng 6/2022 # Khác Nhau Giữa Abstract Class Và Interface ...
-
Phân Biệt Abstract Class Và Interface - DotnetVN
-
Abstract Class Là Gì? Phân Biệt Abstract Class Và Interface - 123Job
-
Điểm Khác Nhau Giữa Class, Abstract Class Và Interface. Class Nội Là ...