Interface trong java với ví dụ cụ thể

Ở bài trước chúng ta đã tìm hiểu về abstract class được sử dụng để triển khai tính trừu tượng trong java.

Không giống như abstract class, interface được sử dụng để biểu diễn 100% tính trừu tượng. Trong một interface các method sẽ mặc định là abstract method. Nói đến interface chúng ta sẽ nhìn nhận nó như là một khuôn mẫu các hành động được cung cấp mà bạn không thể biết bên trong nó thực hiện như thế nào.

Cách sử dụng interface trong java

Như phần ở trên, interface được sử dụng để biểu diễn 100% tính trừu tượng. 

Các method trong interface mặc định đều là asbtract method. 

Trước mỗi method trong interface đều mặc định được thêm vào trước cặp từ khoá public static.

Các class implement interface phải implement tất cả các method được khai báo trong interface.

Các class trong java không được extends nhiều class, nhưng với có thể implement nhiều interface khác nhau.

Cú pháp khai báo interface

Ví dụ: Chúng ta có interface Mail chứa các method sendMail(), log(). Class MailImpl sẽ implement Mail và triển khai các method mà Mail khai báo.

Output:

Sending email
Log!!!

Đa thừa kế trong interface 

Trong java, các class thông thường thì chỉ được phép extends từ một class cha duy nhất có thể là một class khác hoặc abstract class. Thế nhưng trong interface chúng ta có thể extends nhiều interface khác.

Ví dụ chúng ta có 3 interface A, B, C. C sẽ extends từ A, B. InterfaceImpl sẽ implement C. đồng nghĩa với việc nó sẽ implement các method được định nghĩa trong cả 3 interface A, B, C.

Output: 

A
B
C

Đặt câu hỏi nếu có abstract method được định nghĩa ở cả interface cha và con. Nếu một class implement interface con thì sẽ triển khai hàm nào? Câu trả lời là hàm nào cũng được ha.

Ví dụ

Outout: Demo

Tag và Marker interface trong java

Một interface không chứa bất kỳ một method hay thuộc tính nào gọi là Tag hoặc Marker interface. Ví dụ Serializable, EventListener etc.

Functional Interface

Functional Interface là một interface chứa duy nhất một abstract method. Từ java 8 trở đi lambda expressions được sử dụng nhiều với functional interface để thể hiện một implement của nó.

Một functional interface có thể có nhiều default method, static method, nên các bạn đừng nhầm tưởng rằng functional interface lại có nhiều method thế kia nhé, nó chỉ có một abstract method duy nhất thôi!

Interface note:

1, Một interface không thể khởi tạo. Nghĩa là bạn không thể khởi tạo một object của interface.

2, Interface cung cấp 100% tính trừu tượng với các method mặc định là abstract method.

3, Class sử dụng từ khoá implement để implement một interface.

4, Các class implement một interface bắt buộc phải triển khai tất cả các method được khai báo trong interface. 

5, Interface không để khai báo với từ khoá private hoặc protected 

Các khởi tạo trên là không được phép.

6, Trong interface các biến mặc định là public, static và final 

Các cách khai báo trên là giống như và nó sẽ đều là 

Các bài viết liên quan

‹Previous  Next›

Leave a Reply

Your email address will not be published. Required fields are marked *