Tại sao phải dùng interface

Trong một đợt tình cờ vào VOZ forums, bao gồm một bạn hỏi về Interface vào Java là gì? Nó không giống cùng với Abstract Class vị trí nào? Tại sao đề nghị dùng Interface, tuy nhiên nó chẳng rút gọn code đi tý như thế nào, thậm chí còn dài ra hơn. Mặc cho dù có không ít các bạn trả lời cho chủ topic kia nhưng mà phần lớn là gọi không đúng, hoặc không hiểu rõ thực chất của Interface vào Java.

Bạn đang xem: Tại sao phải dùng interface

Để chúng ta tất cả ánh nhìn thấu đáo, hiểu rõ thực chất của Interface. Từ kia có thể áp dụng Interface một phương pháp chuẩn chỉ đến dự án của chính bản thân mình. Mình đã phát hành bài viết này.

*


Nội dung chính của bài xích viết

Java Interface là gì? Có đề nghị “cỗ mặt” của Java?điểm lưu ý bao gồm của Java Interface

Java Interface là gì? Có nên “cỗ mặt” của Java?

Để gọi một biện pháp đúng mực thì phải phát âm định nghĩa Interface của thiết yếu công ty Oracle:


In its most comtháng size, an interface is a group of related methods with empty bodies.Oracle

Đến Oracle cũng thiết yếu định nghĩa Interface một bí quyết công nghệ kiểu: Interface là xyz, bla bla. Nhưng chúng ta có thể gọi một giải pháp nôm mãng cầu cùng chính xác nlỗi sau: Trong trái đất thực, họ có đồ vật (dụng cụ, con vật…) với các hành động của nó. Interface được sinh là để khái niệm những hành vi của một đội đồ.

Mình đem ví như sau: Một con mèo (đấy là con vật) thì bao gồm những hành động như: chạy, bắt chuột, ngủ…

Ta sẽ có mang một Interface Cat như sau:

interface CatBehaviors // Cách bé mèo chạy với vận tốc void run(int speed); // Cách con mèo bắt con chuột void catchMouse(int mouse); // Định nghĩa giải pháp nhỏ mèo ngủ. void sleep();Sau này chúng ta có mang một nhỏ mèo thì tất nhiên nó đã bắt buộc những hành vi của con mèo, cho dù nó là mèo tam thể tuyệt mèo vàng…

class Cat implements CatBehaviors private String màu_lông; //Cách con mèo chạy với vận tốc void run(int speed) ... //Cách con mèo bắt chuột void catchMouse(int mouse) ... // Định nghĩa biện pháp bé mèo ngủ. void sleep() ... Về học tập thuật thì Interface chính là định nghĩa để hiện tại hóa triết lý nhiều hình vào lập trình hướng đối tượng người dùng. Cụ thể hơn vậy thì bản thân sẽ giải thích ở trong phần sau của nội dung bài viết.

Interface Java cũng là 1 Abstract Class bao hàm những method được có mang (nhưng mà ngôn từ của method thì không được viết rõ ràng, tín đồ ta điện thoại tư vấn là abstract method). Một Class sau đây đã implements một Interface, đến thời gian kia class new viết cụ thể nội dung của các method được định nghĩa vào interface.

Trong Interface, ngoại trừ abstract method, chúng ta hoàn toàn có thể thêm constants, static methods, nested interfaces (interface trong một interface) và mặc định methods.

Điểm như thể – không giống nhau giữa Interface với Abstract class:

Một interface về cơ phiên bản trọn vẹn như là cùng với abstract class. Một interface cũng có các abstract method và các method có thiết kế nhằm implement nghỉ ngơi những class không giống. Việc implement này trọn vẹn như là cùng với việc extend và override method vào Abstract class.

Về điểm khác nhau, thì bản thân thấy tất cả 2 điểm chính:

Về bí quyết viết code: những method vào interface đề nghị là empty method, tức là method không có văn bản, chỉ có tên hàm, tsay mê số và kiểu dáng tài liệu trả về. Trong lúc với abstract class thì chúng ta trọn vẹn hoàn toàn có thể thêm abstract method hoặc method thông thường (là method tất cả nội dung, xúc tích bên trong body). Về mục tiêu sử dụng: Interface là 1 trong những chức năng mà bạn cũng có thể thêm và bất cứ class làm sao. Từ công dụng tại chỗ này ko đồng nghĩa tương quan cùng với method (tốt còn được gọi là hàm).Abstract class là 1 trong những class phụ vương mang lại tất cả các class gồm thuộc bản chất. Bản chất tại chỗ này được đọc là phong cách, nhiều loại, nhiệm vụ của class.

Xem thêm: Glucosamine Sulfate Là Gì ? Lợi Ích Và Hướng Dẫn Cách Bổ Sung

Tại sao họ phải Interface

Lý bởi vì đó là Java không hỗ trợ nhiều thừa kế. Do đó, các bạn quan trọng kế thừa và một thời điểm những class. Các class nhỏ cần yếu kế thừa những thuộc tính của khá nhiều class phụ thân, vày nó dẫn mang đến bài toán thù Kim Cương (chúng ta tìm kiếm Google để tìm hiểu đặc điểm này nhé).

Để xử lý vụ việc này, bạn ta mới cho ra đời Interface. Để làm rõ hơn, họ đã cùng cả nhà xem ví dụ sau đây.

quý khách hàng ý muốn kiến thiết một Sngơi nghỉ thú, có rất nhiều những con vật. Về cơ bản thì những con vật đều phải sở hữu những điểm lưu ý phổ biến như: Có thương hiệu, có giờ đồng hồ kêu, tất cả chân (2 chân, 4 chân, hoặc 0 có chân nào…). Từ mọi điểm sáng tầm thường đó chúng ta tạo một abstract class là: abstract class Animal

*

Tuy nhiên lại sở hữu một vài loài lại biết cất cánh, một trong những loài thì biết bơi. Và loại “dở” là loại biết cất cánh lại chần chừ bơi lội. Do vậy, ta cần thiết nhằm Điểm lưu ý biết bay xuất xắc biết bơi vào class Animal được.

Đó là lý do bọn họ bắt buộc tạo ra 2 Interface khác biệt là Can_Fly cùng Can_Swim rồi xem class làm sao hoàn toàn có thể implements từng chiếc tương thích.

*

Đặc điểm bao gồm của Java Interface

quý khách hàng gọi mang đến có thể cũng đã gọi phần nào về Interface trong Java rồi đúng không? Lúc như thế nào thì cần được thực hiện Interface, với nó khác cùng với Class hay nơi nào.

Giờ bản thân vẫn tổng đặc lại phần lớn Điểm lưu ý chủ yếu mà bạn cần phải nhớ về Interface:

Các method được knhị báo vào Interface phải là method rỗng.Không thể chế tác đối tượng người sử dụng tự Interface.Một Class hoàn toàn có thể implement một hoặc các Interface.

Mình viết một đoạn code bản thân họa cho đỡ buốn chán nhé.

public interface extInterface public void method1(); public void method2();import java.util.Scanner;class Edureka implements extInterface public void method1() System.out.println("implementation of method1"); Scanner scanner = new Scanner(System.in); System.out.println("Enter number to lớn find square root in Java : "); double square = scanner.nextDouble(); double squareRoot = Math.sqrt(square); System.out.printf("Square root of number: %f is : %f %n" , square, squareRoot); public void method2() System.out.println("implementation of method2"); public static void main(String arg<>) extInterface obj = new Edureka(); obj.method1(); Chạy đoạn code đang chiếm được kết quả:

implementation of method1Enter number lớn find square root in Java :16Square root of number: 16.0 is : 4.0

Tổng kết

bởi thế là tôi đã ngừng nội dung bài viết về Interface trong Java. Đọc mang lại trên đây, bạn vẫn “vỡ” ra được rất nhiều điều không? Nếu không thì… bi lụy kinh.

Xem thêm: Omniverse Là Gì Và Multiverse Này Ảnh Hưởng Đến Phim Ảnh Ra Sao?

Các chúng ta nên nhớ, Interface chỉ là 1 trong những luật pháp, nó chưa hẳn là triết lý xây dựng. Do vậy, khi ai đó nói tới thiết kế hướng đối tượng người sử dụng, cho tới nhiều hình mà lại nói: Tính nhiều hình là interface. Thì không hẳn là đúng nhé. Nhớ này: Interface chỉ là 1 trong những khí cụ để triển khai tính nhiều hình.


Chuyên mục: Hỏi Đáp