Giao diện là gì?
Giao diện là một bản thiết kế có thể được sử dụng để triển khai một lớp. Giao diện không chứa bất kỳ phương thức cụ thể nào (các phương thức có mã). Tất cả các phương thức của một giao diện là các phương thức trừu tượng.
Một giao diện không thể được khởi tạo. Tuy nhiên, các lớp triển khai giao diện có thể được khởi tạo. Các giao diện không bao giờ chứa các biến cá thể nhưng chúng có thể chứa các biến cuối cùng tĩnh công khai (tức là các biến lớp không đổi)
Lớp trừu tượng là gì?
Một lớp có từ khóa trừu tượng trong khai báo của nó được gọi là lớp trừu tượng. Các lớp trừu tượng nên có ít nhất một phương thức trừu tượng. , tức là, các phương thức không có phần thân. Nó có thể có nhiều phương pháp cụ thể.
Các lớp trừu tượng cho phép bạn tạo bản thiết kế cho các lớp cụ thể. Nhưng lớp kế thừa nên triển khai phương thức trừu tượng.
Các lớp trừu tượng không thể được khởi tạo.
Những lý do quan trọng để sử dụng giao diện
- Các giao diện được sử dụng để đạt được sự trừu tượng.
- Được thiết kế để hỗ trợ độ phân giải phương pháp động tại thời điểm chạy
- Nó giúp bạn đạt được khớp nối lỏng lẻo.
- Cho phép bạn tách định nghĩa của một phương thức khỏi hệ thống phân cấp kế thừa
Những lý do quan trọng để sử dụng lớp trừu tượng
- Các lớp trừu tượng cung cấp chức năng mặc định cho các lớp con.
- Cung cấp mẫu cho các lớp cụ thể trong tương lai
- Giúp bạn xác định giao diện chung cho các lớp con của nó
- Lớp trừu tượng cho phép mã tái sử dụng.
Giao diện Vs. Lớp trừu tượng
Một lớp trừu tượng cho phép bạn thực hiện chức năng mà các lớp con có thể thực hiện hoặc ghi đè trong khi một giao diện chỉ cho phép bạn nêu chức năng nhưng không thực hiện nó. Một lớp chỉ có thể mở rộng một lớp trừu tượng trong khi một lớp có thể triển khai nhiều giao diện.
Thông số | Giao diện | Lớp trừu tượng |
---|---|---|
Tốc độ | Chậm | Nhanh |
Nhiều tài sản thừa kế | Triển khai một số Giao diện | Chỉ một lớp trừu tượng |
Kết cấu | Phương pháp trừu tượng | Phương pháp trừu tượng & cụ thể |
Khi nào sử dụng | Nâng cao trong tương lai | Để tránh độc lập |
Kế thừa / Thực hiện | Một lớp có thể triển khai nhiều giao diện | Lớp chỉ có thể kế thừa một Lớp trừu tượng |
Triển khai mặc định | Trong khi thêm nội dung mới vào giao diện, thật là ác mộng khi phải tìm tất cả các trình triển khai và triển khai các nội dung mới được xác định. | Trong trường hợp Lớp trừu tượng, bạn có thể tận dụng việc triển khai mặc định. |
Truy cập công cụ sửa đổi | Giao diện không có công cụ sửa đổi quyền truy cập. Mọi thứ được định nghĩa bên trong giao diện được giả định là công cụ sửa đổi công khai. | Lớp trừu tượng có thể có một công cụ sửa đổi quyền truy cập. |
Khi nào sử dụng | Tốt hơn là sử dụng giao diện khi các triển khai khác nhau chỉ chia sẻ chữ ký phương thức. Phân cấp đa hình của các loại giá trị. | Nó nên được sử dụng khi các triển khai khác nhau của cùng một loại có chung một hành vi. |
Các trường dữ liệu | giao diện không thể chứa các trường dữ liệu. | lớp có thể có các trường dữ liệu. |
Nhiều người thừa kế mặc định | Một lớp có thể triển khai nhiều giao diện. | Một lớp chỉ thừa kế một lớp trừu tượng. |
Thực hiện | Một giao diện là trừu tượng nên nó không thể cung cấp bất kỳ mã nào. | Một lớp trừu tượng có thể cung cấp mã hoàn chỉnh, mặc định sẽ được ghi đè. |
Sử dụng công cụ sửa đổi Access | Bạn không thể sử dụng công cụ sửa đổi quyền truy cập cho phương thức, thuộc tính, v.v. | Bạn có thể sử dụng một lớp trừu tượng có chứa các bổ trợ truy cập. |
Sử dụng | Các giao diện giúp xác định các khả năng ngoại vi của một lớp. | Một lớp trừu tượng xác định danh tính của một lớp. |
Các trường xác định | Không có trường nào có thể được xác định | Một lớp trừu tượng cho phép bạn xác định cả trường và hằng số |
Di sản | Một giao diện có thể kế thừa nhiều giao diện nhưng không thể kế thừa một lớp. | Một lớp trừu tượng có thể kế thừa một lớp và nhiều giao diện. |
Hàm tạo hoặc hủy | Một giao diện không thể khai báo hàm tạo hoặc hàm hủy. | Một lớp trừu tượng có thể khai báo hàm tạo và hàm hủy. |
Giới hạn của các tiện ích mở rộng | Nó có thể mở rộng bất kỳ số lượng giao diện nào. | Nó chỉ có thể mở rộng một lớp hoặc một lớp trừu tượng tại một thời điểm. |
Từ khóa trừu tượng | Trong một từ khóa giao diện trừu tượng, là tùy chọn để khai báo một phương thức dưới dạng tóm tắt. | Trong một lớp trừu tượng, từ khóa trừu tượng là bắt buộc để khai báo một phương thức là một trừu tượng. |
Loại lớp | Một giao diện chỉ có thể có các phương thức trừu tượng công khai. | Một lớp trừu tượng có các phương thức trừu tượng được bảo vệ và công khai. |
Mã mẫu cho Giao diện và Lớp Tóm tắt trong Java
Sau đây là mã mẫu để tạo giao diện và lớp trừu tượng trong Java
Cú pháp giao diện
interface name{//methods}
Ví dụ về giao diện Java:
interface Pet {public void test();}class Dog implements Pet {public void test() {System.out.println("Interface Method Implemented");}public static void main(String args[]) {Pet p = new Dog();p.test();}}
Cú pháp lớp trừu tượng
abstract class name{// code}
Ví dụ về lớp trừu tượng:
abstract class Shape {int b = 20;abstract public void calculateArea();}public class Rectangle extends Shape {public static void main(String args[]) {Rectangle obj = new Rectangle();obj.b = 200;obj.calculateArea();}public void calculateArea() {System.out.println("Area is " + (obj.b * obj.b));}}