Interface trong java là gì

     

Một Interface vào Java là một bạn dạng kế hoạch của class. Nó bao gồm chứa static constant cùng abstract method (phương thức trừu tượng)

*

Interface trong Java là 1 trong những cơ chế để giành được sự trừu tượng. Rất có thể chỉ có các phương thức trừu tượng vào Interface, không có phần thân phương thức. Nó được sử dụng để có được tính trừu tượng và đa thừa kế trong Java.

Bạn đang xem: Interface trong java là gì

Nói giải pháp khác, interface có thể có những phương thức trừu tượng cùng biến. Không tồn tại thân phương thức.

Interface không thể khởi chế tạo ra như classsTừ JAVA 9 thì hoàn toàn có thể có thủ tục private vào interface

Tại sao nên sử dụng interface trong JAVA?

Chủ yếu bao gồm ba vì sao để áp dụng giao diện. Bọn chúng được chỉ dẫn dưới đây.

Sử dụng Interface để giành được sự trừu tượng.Interface hoàn toàn có thể hỗ trợ họ đạt được đa kế thừa (Vì Java mặc định không cung ứng đa kế thừa trải qua class).Nó hoàn toàn có thể được sử dụng để đã đạt được Loose coupling.

Ghi chú: Loose coupling là có nghĩa là giữa các class gần như là độc lập. Nếu class A biết về class B qua hầu hết gì đã miêu tả trong class B thì class A và class B là Loose coupling

Cách khai báo Interface trong JAVA

Một Interface trong Java được khai báo bằng phương pháp sử dụng trường đoản cú khóa interface. Nó cung ứng tổng thể trừu tượng; có nghĩa là tất cả các phương thức trong một interface được khai báo mà không tồn tại phần thân và toàn bộ các ngôi trường (field) là công khai minh bạch (public), tĩnh (static) cùng cuối (final) cùng theo mặc định.

Một class thực hiện một interface cần thực hiện toàn bộ các thủ tục được khai báo vào interface.

Cú pháp của interface trong Java:

interface // Khai báo constant fields // Khai báo cách thức trừu tượng // ... Tham khảo: Cách đặt tên trong Java để biết phương pháp đặt tên Interface tiêu chuẩn.

Cải tiến Interface trong JAVA 8

Kể từ Java 8, Interface có thể có các phương thức default cùng static đã được luận bàn sau.

Ghi chú: Trình biên dịch Java auto thêm các từ khóa publicabstract trước cách thức trong Interface. Với nó cũng thêm các từ khóa public, static cùng final trước những data member. Vì vậy khi khai báo Interface bọn họ không cần thêm chúng.

Ví dụ họ khai báo một interface núm này:

interface IInAn int MIN = 5; void in();Thì trình biên dịch vẫn hiểu / dịch như thế này:

interface IInAn public static final int MIN = 5; public abstract void in();

Mối quan hệ nam nữ giữa class với interface

Như trong hình mặt dưới, một class không ngừng mở rộng (extend) một class khác, một interface mở rộng (extend) một interface khác, mà lại một class sẽ thực thi (implements) một interface.

Xem thêm: Nên Mua Khoá Cửa Vân Tay Hãng Nào Tốt, An Toàn Bạn Không Nên Bỏ Qua

*

Lưu ý: nếu như khách hàng đang tích cực và lành mạnh học Java để đi thực tập, đi làm. Hãy xem thêm ngay khóa huấn luyện LẬP TRÌNH JAVA WEB trên NIIT – ICT hà thành để được khuyên bảo bởi chuyên viên doanh nghiệp, giảng dạy theo nhu cầu thực tiễn, tuyển dụng ngay lập tức cuối khóa học!

lấy ví dụ như về Interface vào JAVA

Trong lấy ví dụ như này, Interface IInAn chỉ có một cách tiến hành và việc triển khai nó được hỗ trợ trong class A6.

// Khai báo Interfaceinterface IInAn // Khai báo cách tiến hành trừu tượng void inThongTin(); // thực hiện interfaceclass A6 implements IInAn // Viết khai triển ví dụ cho phương thức trừu tượng public void inThongTin() System.out.println("Xin Chào"); public static void main(String args<>) A6 a6 = new A6(); a6.inThongTin(); Kết quả khi chạy chương trình:

Xin chàoTiếp tục một ví dụ khác về interface trong Java.

Trong ví dụ này, Interface IVeHinh chỉ bao gồm một cách tiến hành ve(). Việc thực hiện nó được cung cấp bởi các lớp HinhChuNhat cùng HinhTron.

Trong một kịch bạn dạng thực tế, một interface sẽ được định nghĩa bởi fan khác, việc tiến hành nó sẽ không giống nhau bởi các lập trình viên khác nhau. Phần triển khai được ẩn bởi người dùng sử dụng interface.

// Khai báo Interface: User đầu tiêninterface IVeHinh void ve(); // Triển khai: User sản phẩm hai class HinhChuNhat implements IVeHinh public void ve() System.out.println("Vẽ hình chữ nhật..."); class HinhTron implements IVeHinh public void ve() System.out.println("Vẽ hình tròn..."); // áp dụng interface: User thứ ba class TestInterface1 public static void main(String args<>) IVeHInh d = new HinhTron(); d.ve(); kết quả khi chạy chương trình:

Vẽ hình tròn...Hãy thử xem một ví dụ khác về interface java cung ứng việc triển interface INganHang

interface INganHang float rateOfInterest(); class Agri implements INganHang public float laiSuat() return 0.07; class vietcombank implements INganHang public float laiSuat() return 0.08; class TestInterface2 public static void main(String<> args) INganHang nganHang = new VCB(); System.out.println("Lãi suất: " + nganHang.laiSuat() * 100 + "%"); Kết quả lúc chạy chương trình:

Lãi suất: 8%

Đạt được xem đa kế thừa trong Java thông qua interface

Nếu một tấm Java triển khai nhiều interface hoặc interface không ngừng mở rộng nhiều interface, nó được điện thoại tư vấn là đa kế thừa.

*

Ví dụ:

interface IInAn void inThongTin(); interface IHienThi void hienThi(); // Đa kế thừaclass A7 implements IInAn, IHienThi public void inThongTin() System.out.println("Xin chào"); public void hienThi() System.out.println("Hiển thị bản xem trước"); public static void main(String args<>) A7 a7 = new A7(); a7.inThongTin(); a7.hienThi(); Kết quả lúc chạy chương trình:

Xin chàoHiển thị bản xem trước

Câu hỏi: Đa kế thừa không được hỗ trợ thông qua class vào java, nhưng vì sao nó rất có thể được triển khai bởi một interface?

Như bọn họ đã phân tích và lý giải trong chương kế thừa trong Java, Java không cung ứng đa kế thừa class bởi vì sự mơ hồ.

Tuy nhiên, bởi đa kế thừa trải qua interface ko mơ hồ nên nó được hỗ trợ. Việc xúc tiến của nó được hỗ trợ bởi class thực thi. Ví dụ:

interface IInAn void inThongTin(); interface IHienThi void hienThi(); class TestInterface3 implements IInAn, IHienThi public void inThongTin() System.out.println("Xin chào"); public static void main(String args<>) TestInterface3 obj = new TestInterface3(); obj.inThongTin(); Kết quả khi chạy chương trình:

Xin chào

Kế vượt interface

Trong Java, một class thực thi (implements) một interface, tuy nhiên một interface này mở rộng (extends) một interface khác.

interface IInAn void inThongTin(); interface IHienThi extends IInAn void hienThi();class TestInterface4 implements Showable public void inThongTin() System.out.println("Xin chào"); public void hienThi() System.out.println("Hiển thị phiên bản xem trước"); public static void main(String args<>) TestInterface4 obj = new TestInterface4(); obj.inThongTin(); obj.hienThi(); Kết quả lúc chạy chương trình:

Xin chàoHiển thị bản xem trước

Phương thức mặc định của Java 8 vào interface

Kể trường đoản cú Java 8, chúng ta cũng có thể có thân phương thức trong interface. Nhưng họ cần đặt nó thành cách làm default. Hãy coi một ví dụ:

interface IVeHinh void ve(); default void msg() System.out.println("Phương thức default"); class HinhChuNhat implements IVeHinh public void ve() System.out.println("Vẽ hình chữ nhật"); class TestInterfaceDefault public static void main(String args<>) IVeHinh hinhChuNhat = new HinhChuNhat(); hinhChuNhat.ve(); hinhChuNhat.msg(); Kết quả khi chạy chương trình:

Vẽ hình chữ nhậtPhương thức default

Câu hỏi: Interface được ghi lại (marker) hoặc được đính thêm thẻ (tagged) là gì?

Một interface không có data thành viên nào được hotline là marker interface hoặc tagged interface.

Ví dụ: Serializable, Cloneable, Remote , v.v. Bọn chúng được sử dụng để cung cấp một số thông tin quan trọng cho JVM nhằm JVM có thể thực hiện một vài hành vi.

Xem thêm: Có Bầu Uống Nghệ Mật Ong Được Không ? Nghệ Rất Tốt Cho Bà Bầu Nếu Dùng Đúng Liều Lượng

Interface lồng nhau vào Java

Một interface hoàn toàn có thể có một interface khác được hotline là interface lồng nhau (Nested Interface). Họ sẽ khám phá nó một cách cụ thể trong chương Nested Class. Ví dụ:

interface IInAn void in(); // Interface được lồng vào interface không giống interface IThongTinInAn void thongTin(); Như vậy, qua nội dung bài viết này, tôi đã hướng dẫn bạn tò mò về interface trong Java, và thuộc với các ví dụ dễ dàng và đơn giản hi vọng chúng ta hiểu được giải pháp khai báo, triển khai và dành được tính đa kế thừa thông qua interface.