Cách sử dụng interface trong java

     

Trong một lần tình cờ vào VOZ forums, có một chúng ta hỏi về Interface trong Java là gì? Nó không giống với Abstract Class vị trí nào? lý do phải sử dụng Interface, mặc dù nó chẳng rút gọn gàng code đi tý nào, thậm chí còn nhiều năm hơn. Mặc dù có rất nhiều bạn vấn đáp cho nhà topic đó nhưng số đông là gọi sai, hoặc chưa biết đến rõ thực chất của Interface vào Java.

Bạn đang xem: Cách sử dụng interface trong java

Để các bạn có ánh nhìn thấu đáo, gọi rõ bản chất của Interface. Từ bỏ đó rất có thể ứng dụng Interface một cách chuẩn chỉnh chỉ cho dự án công trình của mình. Tôi đã cho ra đời nội dung bài viết này.

*


Nội dung bao gồm của bài viết

Java Interface là gì? tất cả phải “bộ mặt” của Java?Đặc điểm chủ yếu của Java Interface

Java Interface là gì? có phải “bộ mặt” của Java?

Để gọi một cách đúng mực thì yêu cầu đọc tư tưởng Interface của chủ yếu chủ Oracle:


In its most common form, an interface is a group of related methods with empty bodies.Oracle

Đến Oracle cũng bắt buộc định nghĩa Interface một biện pháp khoa học kiểu: Interface là xyz, bla bla. Nhưng chúng ta có thể hiểu một giải pháp nôm mãng cầu và đúng đắn như sau: Trong trái đất thực, chúng ta có đồ (đồ vật, bé vật…) và những hành vi của nó. Interface được sinh là nhằm định nghĩa những hành vi của một nhóm vật.

Mình lấy ví như sau: Một con mèo (đây là nhỏ vật) thì có các hành vi như: chạy, bắt chuột, ngủ…

Ta sẽ khái niệm một Interface mèo như sau:

interface CatBehaviors // Cách nhỏ mèo chạy với vận tốc void run(int speed); // Cách bé mèo bắt loài chuột void catchMouse(int mouse); // Định nghĩa cách nhỏ mèo ngủ. Void sleep();Sau này họ định nghĩa một con mèo thì tất yếu nó đang phải những hành vi của bé mèo, cho dù nó là mèo tam thể tốt mèo vàng…

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

Interface Java cũng là một trong những Abstract Class bao hàm các method được có mang (nhưng ngôn từ của method thì ko được viết cố kỉnh thể, fan ta call là abstract method). Một Class sau đây sẽ implements một Interface, mang lại lúc kia class new viết cụ thể nội dung của các method được có mang trong interface.

Trong Interface, kế bên abstract method, các bạn hoàn toàn có thể thêm constants, static methods, nested interfaces (interface trong một interface) cùng default methods.

Điểm như thể – khác biệt giữa Interface cùng Abstract class:

Một interface về cơ bản hoàn toàn tương đương với abstract class. Một interface cũng đều có các abstract method và những method có phong cách thiết kế để implement ở các class khác. Vấn đề implement này hoàn toàn giống với bài toán extend và override method trong Abstract class.

Về điểm không giống nhau, thì bản thân thấy có 2 điểm chính:

về kiểu cách viết code: những method trong interface bắt buộc là empty method, tức là method không tồn tại nội dung, chỉ có tên hàm, tham số cùng kiểu tài liệu trả về. Trong lúc với abstract class thì bạn hoàn toàn có thể thêm abstract method hoặc method bình thường (là method tất cả nội dung, logic phía bên trong body). Về mục tiêu sử dụng: Interface là một công dụng mà bạn có thể thêm và bất cứ class nào. Từ tác dụng ở đây không đồng nghĩa tương quan với method (hay nói một cách khác là hàm).Abstract class là một trong class cha cho tất cả các class tất cả cùng bạn dạng chất. Thực chất ở phía trên được phát âm là kiểu, loại, nhiệm vụ của class.

Xem thêm: Giải Bài 59, 60, 61, 62 Trang 26, 27 Sgk Toán 8 Bài 60 Trang 27 Sgk Toán 8 Tập 1

Tại sao chúng ta cần Interface

Lý do đó là Java không cung cấp đa kế thừa. Vì chưng đó, bạn không thể kế thừa cùng một lúc nhiều class. Các class bé không thể kế thừa những thuộc tính của nhiều class cha, do nó dẫn đến việc Kim cương cứng (các bạn tìm kiếm Google để biết điều này nhé).

Để xử lý vấn đề này, bạn ta mới cho ra đời Interface. Để làm rõ hơn, họ sẽ cùng nhau xem ví dụ bên dưới đây.

Bạn muốn xây dựng một Sở thú, gồm tương đối nhiều các con vật. Về cơ phiên bản thì những con vật đều phải sở hữu các đặc điểm chung như: gồm tên, bao gồm tiếng kêu, có chân (2 chân, 4 chân, hoặc 0 bao gồm chân nào…). Tự những điểm sáng chung đó chúng ta tạo một abstract class là: abstract class Animal

*

Tuy nhiên lại có một số trong những loài lại biết bay, một số trong những loài thì biết bơi. Và loại “dở” là loài biết bay lại đo đắn bơi. Bởi vậy, ta thiết yếu để điểm sáng biết bay hay biết tập bơi trong class Animal được.

Đó là lý do bọn họ cần chế tác 2 Interface khác biệt là Can_FlyCan_Swim rồi xem class nào rất có thể implements từng cái thích hợp.

*

Đặc điểm chính của Java Interface

Bạn đọc cho chắc đã và đang hiểu phần như thế nào về Interface vào Java rồi đúng không? khi nào thì rất cần được sử dụng Interface, với nó không giống với Class thường chỗ nào.

Giờ mình đã tổng sánh lại những đặc điểm chính mà bạn cần phải nhớ về Interface:

Các method được khai báo trong Interface đề xuất là method rỗng.Không thể tạo đối tượng từ Interface.Một Class có thể implement một hoặc các Interface.

Mình viết một đoạn code mình họa cho đỡ rầu rĩ 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 khổng lồ 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 thu đượ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

Như vậy là tôi đã hoàn thành nội dung bài viết về Interface trong Java. Đọc đến đây, bạn đã “vỡ” ra được không ít điều không? nếu như không thì… ảm đạm ghê.

Xem thêm: Các Kiểu Dữ Liệu Decimal Trong Sql Server, Các Kiểu Dữ Liệu Trong Sql Server Là Gì

Các bạn nên nhớ, Interface chỉ là một trong những công cụ, nó chưa phải là triết lý lập trình. Bởi vậy, lúc ai đó nói về lập trình hướng đối tượng, tới nhiều hình cơ mà nói: Tính đa hình là interface. Thì chưa hẳn là đúng nhé. Lưu giữ này: Interface chỉ là một trong những công cụ để tiến hành tính nhiều hình.