Trong Java, trừu tượng hóa đạt được bằng cách sử dụng các lớp và giao diện trừu tượng. Cả hai đều chứa các phương thức trừu tượng mà một lớp con hoặc lớp thực thi phải triển khai. Sau đây là những điểm khác biệt quan trọng giữa lớp trừu tượng và một giao diện.
Sr. Không. | Phím | Lớp Tóm tắt | Giao diện |
---|---|---|---|
1 | Phương pháp được Hỗ trợ | Lớp trừu tượng có thể có cả phương thức trừu tượng và cụ thể. | Giao diện chỉ có thể có các phương thức trừu tượng. Java 8 trở đi, nó có thể có các phương thức mặc định cũng như tĩnh. |
2 | Nhiều Thừa kế | Nhiều thừa kế không được hỗ trợ. | Giao diện hỗ trợ Nhiều Thừa kế. |
3 | Biến được Hỗ trợ | Hỗ trợ các biến cuối cùng, không phải cuối cùng, tĩnh và không tĩnh. | Chỉ cho phép các biến tĩnh và biến cuối cùng. |
4 | Triển khai | Lớp trừu tượng có thể triển khai một giao diện. | Giao diện không thể thực hiện một giao diện, nó có thể mở rộng một giao diện. |
5 | Từ khóa | Lớp trừu tượng được khai báo bằng từ khóa trừu tượng. | Giao diện được khai báo bằng từ khóa interface. |
6 | Kế thừa | Lớp trừu tượng có thể kế thừa một lớp khác bằng cách sử dụng từ khóa expand và triển khai một giao diện. | Giao diện chỉ có thể kế thừa một giao diện. |
7 | Kế thừa | Lớp trừu tượng có thể được kế thừa bằng cách sử dụng từ khóa expand. | Giao diện chỉ có thể được triển khai bằng cách sử dụng từ khóa triển khai. |
8 | Quyền truy cập | Lớp trừu tượng có thể có bất kỳ loại thành viên nào như private, public. | Giao diện chỉ có thể có thành viên công khai. |
Ví dụ về Lớp trừu tượng so với Giao diện
JavaTester.java
public class JavaTester { public static void main(String args[]) { Animal tiger = new Tiger(); tiger.eat(); Cat lion = new Lion(); lion.eat(); } } interface Animal { public void eat(); } class Tiger implements Animal { public void eat(){ System.out.println("Tiger eats"); } } abstract class Cat { abstract public void eat(); } class Lion extends Cat{ public void eat(){ System.out.println("Lion eats"); } }
Đầu ra
Tiger eats Lion eats