So sánh khác nhau giữa abstract và interface năm 2024
Chào bạn, nếu bạn là người mới tìm hiểu về lập trình Java, hẳn bạn đã từng nghe về khái niệm Abstract và Interface. Nhưng bạn có biết khi nào mình sẽ dùng abstract và khi nào mình dùng interface không? Khi mới bước chân vào nghề lập trình anh cũng rất hoang mang về công dụng và lợi ích của Abstract và Interface. Chính vì vậy anh viết bài này nhằm giúp mọi người có cái nhìn rõ hơn về sự khác nhau giữa abstract và interface. Từ đó biết lựa chọn sử dụng cái nào phù hợp nhất cho mỗi trường hợp trong lập trình Java. Đồng thời, trong bài viết anh cũng hướng dẫn cách để các bạn tạo Abstract và Interface trong lập trình Java. Show 1. Interface trong lập trình Java là gìInterface chính là cách mình áp dụng tính trừu tượng trong lập trình. Interface chính là 100% abstract class (khi tạo một lớp abstract ta có thể có 5 phương thức là abstract còn lại 5 phương thức không cần abstract. Như vậy khi lớp con kế thừa thì bắt buộc cài đặt 5 phương thức còn 5 phương thức kia không cần cài đặt. Nếu một lớp abstract có 10 phương thức abstract thì bắt buộc lớp con phải cài đặt 10 phương thức, như vậy là cũng giống interface khi ta có 10 phương thức thì lớp con cũng phải cài đặt 10 phương thức. Nói các khác interface chính là abstract class nếu lớp abstract class đó tất cả các method đều là abstract method) để nhóm các phương thức liên quan với nhau và không có phần thân. Phần thân của method sẽ được implement (cài đặt) ở trong lớp implement Interface. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // Interface interface Animal { public void animalSound(); // method của Interface không có phần thân public void sleep(); //method của Interface không có phần thân } // Pig "implements" Interface Animal class Pig implements Animal { public void animalSound() { }
public void sleep() { }
}Một số chú ý khi sử dụng Interface.
2. Abstract trong lập trình Java là gìData Abstraction là quá trình che giấu đi những dữ liệu quan trọng mình chỉ đưa ra những thông tin cần thiết cho người dùng. Để làm được abstraction trong lập trình, ta có thể sử dụng abstract và interface. Ta có thể sử dụng abstract cho class hoặc method. Chúng ta sử dụng từ khoá abstract để khai báo abstract class và method.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // Abstract class abstract class Animal { // abstract class không có phần public abstract void animalSound(); // abstract class không có phần thân public void sleep() { }
}
class Pig extends Animal {
public void animalSound() { }
}3. Sự khác nhau giữa abstract và interfaceBảng dưới đây sẽ giúp các em có cái nhìn rõ hơn về sự khác nhau giữa abstract và interface. Khi nào thì chúng ta nên sử dụng abstract hoặc interface cho hợp lý
|