Giao diện trong java là bản thiết kế cho các lớp. Nó chỉ có các phương thức trừu tượng. Giao diện là một kỹ thuật trong java để đạt được sự trừu tượng hóa hoàn toàn và đa kế thừa. Giao diện trong java cũng đại diện cho mối quan hệ is-a. Nó không thể được khởi tạo giống như một lớp trừu tượng.
Có nghĩa là, các trường của giao diện là công khai, tĩnh và cuối cùng theo mặc định, và các phương thức là công khai và trừu tượng.
Một giao diện trong java là một tập hợp các phương thức trừu tượng. Một lớp thực thi một giao diện và do đó kế thừa các phương thức trừu tượng của giao diện.
Một giao diện không phải là một lớp. Viết một giao diện giống như viết một lớp, nhưng chúng có hai định nghĩa khác nhau. Một lớp mô tả các thuộc tính và hành vi của một đối tượng. Một giao diện chứa hành vi mà một lớp thực hiện.
Trừ khi lớp triển khai giao diện là một lớp trừu tượng, tất cả các phương thức của giao diện cần phải được định nghĩa trong lớp.
Các giao diện tương tự như các lớp theo những cách sau:
- Giao diện được viết trong tệp, định dạng là .java và tên giao diện giống với tên tệp.
- Các mã byte giao diện được lưu trữ trong các tệp ở định dạng .class.
- Khai báo một giao diện trong gói và tệp bytecode tương ứng cũng có cấu trúc thư mục của gói có cùng tên.
Giao diện khác với các lớp theo những cách sau:
- Không thể khởi tạo giao diện.
- Giao diện không chứa bất kỳ hàm tạo nào.
- Tất cả các phương thức giao diện đều trừu tượng.
- Giao diện không được chứa bất kỳ trường nào ngoài trường tĩnh và trường cuối cùng.
- Một giao diện không thể được kế thừa từ một lớp, nó được thực hiện bởi một lớp.
- Các giao diện có thể kế thừa từ nhiều giao diện khác.
- li>
Ví dụ đơn giản về giao diện trong java
Trong ví dụ này, giao diện có thể in chỉ có một phương thức và việc triển khai nó được cung cấp bởi lớp a.
Khi ghi đè các phương thức được xác định trong giao diện, có một số quy tắc:
- Các ngoại lệ đã kiểm tra không được khai báo trong phương thức triển khai, mà trong một phương thức giao diện hoặc một lớp con của khai báo phương thức giao diện.
- Chữ ký của các phương thức giao diện và kiểu trả về nên được giữ nguyên khi ghi đè các phương thức.
- Một lớp tự triển khai có thể trừu tượng và do đó không cần triển khai giao diện phương thức.
Khi triển khai một giao diện, có một số quy tắc:
Đa kế thừa thông qua các giao diện trong java
Đa kế thừa xảy ra khi một lớp thực hiện đa kế thừa hoặc một giao diện kế thừa nhiều giao diện.
Vấn đề : Các lớp trong java không hỗ trợ đa kế thừa, nhưng các giao diện thì có, tại sao?
Như đã thảo luận trong chương về kế thừa, các lớp không hỗ trợ đa kế thừa. Nhưng nó được hỗ trợ bởi một giao diện vì không có sự mơ hồ khi việc triển khai được cung cấp bởi lớp thực thi. Ví dụ:
Trong ví dụ trên, giao diện có thể in và hiển thị có cùng phương thức, nhưng việc triển khai chúng được cung cấp bởi lớp explorenterface1, vì vậy không có sự mơ hồ nào ở đây.
Kế thừa giao diện trong java
Một lớp triển khai một giao diện, nhưng là một giao diện kế thừa từ một giao diện khác.
Giao diện thẻ (hoặc thẻ)
trong java là gì?
Đây là một giao diện không có thành viên. Ví dụ: serializable, cloneable, remote … Chúng được sử dụng để cung cấp một số thông tin cơ bản cho jvm để jvm có thể thực hiện một số thao tác hữu ích.
Giao diện đánh dấu được thiết kế cho hai mục đích chính:
- Tạo giao diện cha chung: Giống như giao diện eventlistener, được kế thừa bởi hàng chục giao diện khác trong java api, bạn có thể sử dụng giao diện đánh dấu để tạo giao diện cha chung cho một nhóm giao diện. Ví dụ: khi một giao diện mở rộng eventlistener, jvm biết rằng giao diện cụ thể này đang được sử dụng trong một sự kiện.
- Thêm kiểu dữ liệu vào các lớp: Đây là khái niệm về thẻ. Một lớp thực hiện giao diện đánh dấu không cần xác định bất kỳ phương thức nào, nhưng lớp sẽ trở thành kiểu giao diện thông qua tính đa hình.