Interface java là gì

  -  
*

Interface là gì? Interface khác gì Class? Đa kế thừa trong Java áp dụng Interface như vậy nào? Ví dụ minh họa


Trong nội dung bài viết này chúng ta đã đi trả lời đông đảo thắc mắc về interface: điểm sáng của interface? So sánh interface cùng với Class? Đa thừa kế vào Java thực hiện Interface như thế nào? Marker (giỏi Tagging) Interface là gì? Interface lồng nhau trong Java? Cùng cùng với các ví dụ minch họa


*

1. Interface trong Java

Điểm sáng của Interface:

Các thủ tục vào interface gần như là những cách tiến hành trừu tượng.Interface là 1 chuyên môn để thu được xem trừu tượng trọn vẹn cùng nhiều thừa kế vào Java.Interface luôn luôn luôn luôn bao gồm modifier là:public interface, mặc dù chúng ta tất cả knhì báo rõ hay là không.Nếu tất cả những ngôi trường (field) thì bọn chúng các là:public static final, mặc dầu chúng ta có khai báo rõ hay là không.Các method của nó số đông là method trừu tượng, tức thị không có thân hàm, với đều có modifier là:public abstract, mặc dù các bạn có knhị báo hay không.Interface không có hàm khởi chế tạo ra (constructor).Một interface không hẳn là 1 trong những lớp. Viết một interface giống hệt như viết một lớp, nhưng chúng bao gồm 2 tư tưởng không giống nhau. Một lớp miêu tả các ở trong tính với hành vi của một đối tượng người dùng. Một interface cất các hành vi nhưng mà một class xúc tiến.Trừ lúc 1 lớp thực thi interface là lớp trừu tượng abstract, sót lại tất cả những cách thức của interface rất cần phải tư tưởng trong class.

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

Java Compiler thêm từ bỏ khóapublic abstracttrước cách thức của interface và các trường đoản cú khóapublic static finaltrước các thành viên dữ liệu.

2. Điểm như là cùng không giống nhau giữa Interface cùng Class

Một interface tương tự với cùng một class vày đa số điểm sau đây:

Một interface được viết trong một tệp tin với định hình .java, với tên của interface như là tên của file.Bytecode của interface được lưu lại vào tệp tin bao gồm định dạng .class.Knhì báo interface trong một package, đông đảo file bytecode khớp ứng cũng đều có cấu trúc tlỗi mục tất cả cùng thương hiệu package.

Một interface không giống với cùng một class sinh hoạt một trong những điểm sau đây:

quý khách hàng không thể khởi tạo một interface.Một interface ko cất bất cứ hàm Contructor nào.Tất cả các cách làm của interface phần lớn là abstract.Một interface quan yếu chứa một ngôi trường như thế nào trừ những trường vừa static và final.Một interface cấp thiết kế thừa tự lớp, nó được tiến hành bởi vì một tấm.Một interface có thể thừa kế từ không ít interface khác.

3. ví dụ như sử dụng Interface trong Java

Ví dụ: Viết lịch trình vẽ một hình bất kỳ cùng với red color, làm sao để cho phương pháp thực hiện là như thể nhau, bất kể đó là hình gì. Hình kia hoàn toàn có thể làhình chữ nhật (rectangle), hình trụ (circle), tam giác (triangle), mặt đường (line), …

Shape.java

public interface Shape String color = "red"; void draw(); Rectangle.java

public class Rectangle implements Shape
Override public void draw() System.out.println("Draw " + color + " rectangle"); Circle.java

public class Circle implements Shape
Override public void draw() System.out.println("Draw " + color + " circle"); ShapeApp.java

public class ShapeApp public static void main(String<> args) Shape rect = new Rectangle(); rect.draw(); System.out.println("---"); Shape circle = new Circle(); circle.draw(); Kết quả:

Draw red rectangle---Draw red circle4. Một vài giữ ý

Lúc ghi đnai lưng các cách làm được khái niệm trong interface, có một vài qui tắc sau:

Các checked exception tránh việc được khai báo vào cách làm implements, nuốm vào kia nó nên được knhị báo vào cách làm interface hoặc những lớp phú được knhì báo vày cách thức interface.Signature (ký kết số) của cách tiến hành interface cùng mẫu mã trả về phải được duy trì Lúc ghi đè thủ tục (overriding method).Một lớp xúc tiến thiết yếu nó hoàn toàn có thể là abstract cùng chính vì vậy những cách tiến hành interface không rất cần phải tiến hành.

khi triển khai interface, tất cả vài nguyên tắc sau:

Một lớp có thể xúc tiến một hoặc các interface trên 1 thời điểm.Một lớp chỉ hoàn toàn có thể kế thừa một lớp khác, tuy vậy được xúc tiến các interface.Một interface rất có thể kế thừa xuất phát từ một interface không giống, tương tự như phương pháp một tấm hoàn toàn có thể kế thừa lớp khác.

5. Đa thừakế trong Java thực hiện Interface

Nếu một tấm triển khai nhiều thừa kế, hoặc một Interface thừa kế từ khá nhiều Interface thì đó là nhiều kế thừa.

Trong Java, một tờ chỉ được thừa kế (extends) xuất phát từ 1 lớp, rất có thể thiết lập (implements) các interface. Tuy nhiên, một interface có thể quá kế (extends) những interface.

Xem thêm: Chương Trình Đà Lạt 3 Ngày 2 Đêm Giá Rẻ Nhất 2021, Tour Du Lịch Đà Lạt 3 Ngày 2 Đêm Giá Rẻ Nhất 2021

Một interface tất yêu setup (implements) interface không giống, vì interface ko phần thiết đặt, chỉ chứa những knhì báo.

lấy một ví dụ một lớp cài đặt (implements) nhiều interface:

public interface Shape void draw(); public interface Màu sắc String getColor(); public class Rectangle implements Shape, Màu sắc
Override public String getColor() return "red"; lấy ví dụ interface thừa kế (extend) các interface:

public interface Shape void draw(); public interface Color String getColor(); public interface ShapeMàu sắc extends Shape, màu sắc public class Circle implements Shapemàu sắc
Override public String getColor() return "red"; Câu hỏi: Đa kế thừa không được hỗ trợ trải qua lớp trong Java nhưng là hoàn toàn có thể vì chưng Interface, trên sao?

Nhỏng sẽ reviews, thừa kế ko được hỗ trợ trải qua lớp. Nhưng nó được hỗ trợ bởi vì Interface cũng chính vì không có tính lưỡng nghĩa lúc trình tiến hành được cung cấp vày lớp Implementation.

lấy ví dụ như nhiều quá kế với Interface

public interface Printable void print(); public interface Showable void print(); public class InterfaceDemo implements Printable, Showable public void print() System.out.println("Welcome to lớn gpcoder.com"); public static void main(String args<>) InterfaceDemo obj = new InterfaceDemo(); obj.print(); Trong ví dụ bên trên, interfacePrintableShowablebao gồm thuộc những phương thơm thứcprint()nhưng mà trình triển khai của chính nó được cung cấp vì chưng lớpInterfaceDemo, chính vì vậy không có tính lưỡng nghĩa ở chỗ này.

ví dụ như nhiều quá kế cùng với class

public class Printable void print() System.out.println("Printable"); public class Showable void print() System.out.println("Showable"); // Không thể thực hiện đa quá kế với classpublic class InterfaceDemo extends Printable, Showable public static void main(String args<>) InterfaceDemo obj = new InterfaceDemo(); obj.print(); // Không thể khẳng định được gọi phương thức print() của class như thế nào Trong ví dụ trên, lớpPrintableShowablecó thuộc các phương thứcprint()vàInterfaceDemo thừa kế 2 class đó không override lại phương thứcprint()cần trình biên dịch chần chờ triển khai pmùi hương thứcprint()của lớpPrintablehay là của lớpShowable. Để đảm bảo an toàn bình an và sút tính tinh vi của hệ thống bắt buộc Java không cung ứng đa thừa kế đối với class.

Marker (giỏi Tagging) Interface vào Java là gì?

Đó là 1 trong Interface mà không tồn tại thành viên nào. Ví dụ: Serializable, Cloneable, Remote, … Chúng được áp dụng nhằm cung ứng một vài thông tin rất cần thiết cho tới JVM nhằm mà JVM hoàn toàn có thể thực hiện một số vận động có lợi.

Ví dụ:

public interface Serializable Có hai mục tiêu kiến thiết chủ yếu của tagging interface là:

Tạo một thân phụ chung: Như với EventListener interface, nhưng được kế thừa bởi vì hàng tá các interface không giống trong Java API, bạn cũng có thể sử dụng một tagging interface nhằm tạo nên một phụ thân bình thường cho một tổ interface. lấy một ví dụ, khi một interface kế thừa EventListener, thì JVM biết rằng interface cụ thể này đang được sử dụng vào một sự kiện.Thêm một vẻ bên ngoài tài liệu tới một class: Đó là có mang tagging. Một class cơ mà tiến hành một tagging interface không buộc phải định nghĩa ngẫu nhiên thủ tục như thế nào, tuy thế class vươn lên là một kiểu interface trải qua tính nhiều hình (polymorphism).

Xem thêm: Trung Quốc Các Địa Điểm Ưa Thích " Nhất, Du Lịch Trung Quốc Ở Đâu Đẹp Với 39 Địa Danh Này

Interface lồng nhau trong Java

Một Interface rất có thể bao gồm Interface khác, sẽ là lồng Interface.

Ví dụ:

interface Printable void print(); interface MessagePrintable void msg();