Giao diện trong Java là gì?
Một giao diện trong Java lập trình được định nghĩa là một loại trừu tượng dùng để xác định hành vi của một lớp. Một giao diện Java chứa các hằng số tĩnh và các phương thức trừu tượng. Một lớp có thể triển khai nhiều giao diện. Trong Java, các giao diện được khai báo bằng từ khóa interface. Tất cả các phương thức trong giao diện là hoàn toàn công khai và trừu tượng.
Cú pháp khai báo giao diện
interface {//methods}
Để sử dụng giao diện trong lớp học của bạn, hãy thêm từ khóa "triển khai" vào sau tên lớp của bạn, sau đó là tên giao diện.
Ví dụ cho việc triển khai giao diện
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
Bấm vào đây nếu video không thể truy cập được
Tại sao cần có Giao diện?
Để hiểu rõ hơn về khái niệm Giao diện Java, hãy xem một ví dụ. Lớp "Media Player" có hai lớp con: đầu CD và DVD. Mỗi người có phương pháp thực hiện độc đáo để chơi nhạc.
Một lớp khác "Ổ đĩa kết hợp" kế thừa cả CD và DVD (xem hình ảnh bên dưới). Nó nên kế thừa phương pháp chơi nào? Điều này có thể gây ra các vấn đề nghiêm trọng về thiết kế. Và do đó, Java không cho phép đa kế thừa.
Bây giờ chúng ta hãy lấy một ví dụ khác về Dog.
Giả sử bạn có một yêu cầu trong đó lớp "dog" kế thừa lớp "động vật" và "Vật nuôi" (xem hình ảnh bên dưới). Nhưng bạn không thể mở rộng hai lớp trong Java. Vậy bạn muốn làm gì? Giải pháp là Giao diện.
Quy tắc cho giao diện cho biết,
- Một giao diện là lớp trừu tượng 100% và chỉ có các phương thức trừu tượng.
- Lớp có thể triển khai bất kỳ số lượng giao diện nào.
Class Dog có thể mở rộng thành class "Animal" và triển khai giao diện là "Pet".
Ví dụ về giao diện Java:
Bước 1) Sao chép mã sau vào trình chỉnh sửa.
giao diện Pet {public void test ();}class Dog thực hiện Pet {public void test () {System.out.println ("Đã triển khai phương pháp giao diện");}public static void main (String args []) {Pet p = new Dog ();p.test ();}}
Bước 2) Lưu, biên dịch và chạy mã. Quan sát Đầu ra.
Sự khác biệt giữa Lớp và Giao diện
Lớp học | Giao diện |
---|---|
Trong lớp, bạn có thể khởi tạo biến và tạo một đối tượng. | Trong một giao diện, bạn không thể khởi tạo biến và tạo một đối tượng. |
Lớp có thể chứa các phương thức cụ thể (có triển khai) | Giao diện không thể chứa các phương thức cụ thể (có triển khai) |
Các chỉ định truy cập được sử dụng với các lớp là riêng tư, được bảo vệ và công khai. |
Trong Giao diện, chỉ có một mã định danh được sử dụng- Công khai. |
Khi nào sử dụng Giao diện và Lớp trừu tượng?
- Sử dụng một lớp trừu tượng khi một mẫu cần được xác định cho một nhóm các lớp con
- Sử dụng giao diện khi một vai trò cần được xác định cho các lớp khác, bất kể cây kế thừa của các lớp này là gì
Phải biết sự thật về Giao diện
- Một lớp Java có thể triển khai nhiều Giao diện Java. Điều cần thiết là lớp phải thực thi tất cả các phương thức được khai báo trong các giao diện.
- Lớp nên ghi đè tất cả các phương thức trừu tượng được khai báo trong giao diện
- Giao diện cho phép gửi một thông điệp đến một đối tượng mà không cần quan tâm đến những lớp nào mà nó thuộc về.
- Lớp cần cung cấp chức năng cho các phương thức được khai báo trong giao diện.
- Tất cả các phương thức trong một giao diện hoàn toàn là công khai và trừu tượng
- Một giao diện không thể được khởi tạo
- Một tham chiếu giao diện có thể trỏ đến các đối tượng của các lớp triển khai của nó
- Một giao diện có thể mở rộng từ một hoặc nhiều giao diện. Lớp chỉ có thể mở rộng một lớp nhưng thực hiện bất kỳ số lượng giao diện nào
- Một giao diện không thể triển khai một Giao diện khác. Nó phải mở rộng giao diện khác nếu cần.
- Một giao diện được khai báo bên trong một giao diện khác được gọi là giao diện lồng nhau
- Tại thời điểm khai báo, biến giao diện phải được khởi tạo. Nếu không, trình biên dịch sẽ báo lỗi.
- Lớp không thể triển khai hai giao diện trong java có các phương thức có cùng tên nhưng kiểu trả về khác nhau.
Tóm tắt :
- Lớp thực thi giao diện cần cung cấp chức năng cho các phương thức được khai báo trong giao diện
- Tất cả các phương thức trong một giao diện hoàn toàn là công khai và trừu tượng
- Một giao diện không thể được khởi tạo
- Một tham chiếu giao diện có thể trỏ đến các đối tượng của các lớp triển khai của nó
- Một giao diện có thể mở rộng từ một hoặc nhiều giao diện. Một lớp chỉ có thể mở rộng một lớp nhưng thực hiện bất kỳ số lượng giao diện nào