Trong bài này, tôi đang hướng dẫn các bạn tìm đọc về một khái niệm cũng khá quan trọng khi lập trình hướng đối tượng đó là Interface vào Java. Sau đó, tôi sẽ đưa ra một số trong những bài tập để các bạn luyện tập!

*


*

1. Interface vào Java

Khái niệm

Trong Java, Interface (giao diện) là một trong kiểu tài liệu tham chiếu tựa như như Class (lớp) cơ mà chỉ rất có thể chứa hằng số cùng tên các phương thức, không cóphần thân thủ tục (phương thức trừu tượng). Một lớp tế bào tả những thuộc tính và hành động của đối tượng người sử dụng còn Interface thì mô tả các hành vi của lớp đó. Interface tất yêu được khởi sinh sản như lớp mà lại chỉ hoàn toàn có thể được không ngừng mở rộng từ các lớp khác hoặc được kế thừa từ những Interface khác.

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

Trong Interface, chúng ta không thể khai báo hàm chế tạo và Interface cần thiết kế thừa xuất phát điểm từ 1 lớp cơ mà chỉ hoàn toàn có thể được không ngừng mở rộng từ lớp với một Interface hoàn toàn có thể được thừa kế lại từ không ít Interface khác.

Ngoại trừ lớp trừu tượng thì tất cả các lớp không ngừng mở rộng Interface bắt buộc định nghĩa lại toàn bộ các cách làm của Interface.

Bài viết này được đăng tại

Khai báo Interface


Trong Eclipse, để tạo mới một Interface, họ sẽ kích chuột buộc phải vào tên package lựa chọn File → New → Interface và triển khai đặt thương hiệu Interface. Vào ví dụ tiếp sau đây tôi sẽ tạo nên mới 1 Interface có tên là InterfaceJava, sau khi tạo chúng ta sẽ có 1 file InterfaceJava.java với ngôn từ như sau:


InterfaceJava.java
package vidu;public interface InterfaceJava

Từ khóa public cho thấy Interface này rất có thể sử dụng ở bất kỳ package nào. Nếu chúng ta không khai báo phạm vi truy cập cho Interface thì mặc định Interface này chỉ có thể được sử dụng trong package chứa nó.

Một Interface rất có thể kế thừa các Interface khác. Không giống với lớp là từng lớp chỉ rất có thể kế thừa một lớp thì Interface rất có thể kế thừa từ rất nhiều Interface khác, danh sách những Interface được thừa kế cách nhau do dấu phẩy.

Trong những bài trước, chúng ta đã mày mò về từ khóa abstract thì so với một lớp có các phương thức là cách làm trừu tượng thì lớp đó cần phải là 1 trong lớp trừu tượng, do vậy họ phải thực hiện từ khóa abstract,nhưng đối với Interface chúng ta không cần phải sử dụng tự khóa abstract khi khai báo nó. Tương tự, các phương thức là trừu tượng trong Interface cũng không nhất thiết phải sử dụng từ khóa abstract mà chỉ việc khai báo tên phương thức, phạm vi truy nã cập, vẻ bên ngoài trả về của cách tiến hành và hoàn thành bằng vệt chấm phẩy.

Tất cả các phương thức vào Interface gần như mặc định là public nên họ không yêu cầu khai báo public với tương tự, các thuộc tính vào Interface phải là 1 trong hằng số và bọn họ cũng khôngcần nên khai báo static final và chỉ việc khai báo vẻ bên ngoài dữ liệu, tên thay đổi và cực hiếm khởi sinh sản của hằng số đó. Nắm lại, bên phía trong Interface chỉ có hằng số hoặc thương hiệu phương thức, cách làm không đựng phần thân (tức là không tồn tại phần nằm trong dấu và xong xuôi bằng vệt chấm phẩy) hoặc cả hai.

Implement Interface (tạm hotline là mở rộng, tiến hành Interface)

Khi một lớp không ngừng mở rộng 1 Interface thì lớp đó bắt buộc định nghĩa lại tất cả các cách thức của Interface đó. Trong trường hòa hợp lớp đó không quan niệm lại những phương thức của Interface thì nó đề xuất được khai báo là một lớp trừu tượng.

Nếu một lớp không ngừng mở rộng 1 Interface thì trong lớp đó họ phải sử dụng từ khóa implements, phía sau là tên gọi của Interface. Giả dụ lớp này vừa kế thừa xuất phát từ 1 lớp khác và vừa mở rộng 1 Interface thì họ sẽ thực hiện kế vượt trước kế tiếp mở rộng Interface (tức là từ bỏ khóa extends sẽ luôn đứng trước từ khóa implements).


package vidu;public interface Interface // Đây là cách thức trừu tượng// thủ tục trừu tượng của Interface không yêu cầu khai báo trường đoản cú khóa abstract cùng publicvoid createAbstractMethod();
package vidu;public class ClassImplementsInterface implements Interface // Lớp này sau khi tạo ra // chỉ bao gồm phương thức createAbstractMethod() của Interface
Overridepublic void createAbstractMethod() System.out.println("Đây là cách làm createAbstractMethod() của Interface");public static void main(String<> args) ClassImplementsInterface classImplementsInterface = new ClassImplementsInterface();classImplementsInterface.createAbstractMethod();

Kết quả sau khi biên dịch chương trình:

Giải thích hoạt động của chương trình trên:

Trong chương trình trên tôi có tạo nên 1 Interface, Interface này có 1 phương thức trừu tượng là createAbstractMethod() (phương thức này không tồn tại thân hàm và xong xuôi bằng một vệt chấm phẩy). Lớp ClassImplementInterface là 1 trong lớp không ngừng mở rộng Interface trên phải nó sẽ có được phương thức createAbstractMethod() (bắt phải có). Sau đó, tôi tiến hành khởi tạo đối tượng người dùng của lớp đó và gọi thủ tục createAbstractMethod(). Tác dụng sẽ hiển thị cái "Đây là phương thức createAbstractMethod() của Interface" ra màn hình hiển thị Console.

Lưu ý: Để tạo thành một lớp implements Interface, các bạn làm như sau.

Bước 1: Trong hộp thoại tạo nên lớp, ngay dòng Interfaces các bạn nhấn vào nút địa chỉ cửa hàng bên cạnh:

Bước 2: hộp thoại Implemented Interfaces Selection xuất hiện. Trong ô Choose interfaces chúng ta nhập vào tên Interface, tiếp đến tên của Interface vẫn hiển thị vào ô Matching items, bạn chọn vào đó và nhấn OK để kết thúc.

Bước 3: thương hiệu của Interface vừa lựa chọn sẽ hiển thị trong ô Interfaces:

Bước 4: dìm Finish nhằm kết thúc, lúc này ta sẽ có lớp ClassImplementsInterface như sau:


Kế thừa từ Interface

Một Interfacecó thể kế thừa từ Interface khác tựa như như giải pháp mà một tấm kế thừa từ 1 lớp khác kia là bọn họ cũng áp dụng từ khóa extends. Một lớp không ngừng mở rộng từ Interface nhỏ sẽ kế thừa tất cả các phương thức bao gồm trong Interface kia (tức là cách tiến hành của Interface nhỏ và Interface phụ vương của Interface nhưng lớp kia implement). Trong Java, 1 Interface có thể kế thừa từ không ít Interface và các Interface này được phân làn nhau bởi dấu phẩy.


Kết quả sau thời điểm biên dịch chương trình:

Giải thích hoạt động vui chơi của chương trình trên:

Trong công tác trên, tôi chế tác 1 Interface có tên là Person với 1 Interface con Student kế thừa từ Interface Person với khai báo cách làm nhapDiem() mang lại Interface này. Tiếp nối tôi khai báo lớp Main là lớp mở rộng của Interface Student, hôm nay trong lớp Main sẽ sở hữu 3 cách làm đó là cách thức nhap() với hienThi() của Interface Person, cách làm nhapDiem() của Interface Student. Vào hàm main(), tôi thực hiện tạo đối tượng và điện thoại tư vấn đến 3 thủ tục trên, thời điểm đó bọn họ sẽ có kết quả biên dịchnhư hình trên.

Xem thêm: Fooling Around With Nghĩa Là Gì, Ý Nghĩa Của Fool Around Trong Tiếng Anh

Dùng Interface làm cho kiểu dữ liệu

Việc khái niệm một Interface giống như định nghĩa một kiểu tài liệu tham chiếu mới. Nếu bọn họ khai báo một đối tượng có dạng hình dữ liệu là một trong Interface thì đối tượng đó cần được khởi chế tạo ra là một đối tượng người tiêu dùng của lớp implement Interface. Ví dụ họ sẽ sửa câu chữ của lớp Main như sau:


Overridepublic void hienThi() System.out.println("Đây là phương thức hienThi() của Interface Person");
Overridepublic void nhapDiem() System.out.println("Đây là cách tiến hành nhapDiem() của Interface Student");public static void main(String<> args) Student student = new Main();student.nhap();student.hienThi();student.nhapDiem();}

Kết quả sau thời điểm biên dịch chương trình:

3. Lời kết

Trong bài là tôi đã trình làng đến chúng ta về quan niệm Interface vào Java, bao hàm cú pháp khai báo, biện pháp implement Interface từ 1 lớp, cách thừa kế Interface và sử dụng Interface có tác dụng kiểu dữ liệu. Đây là bài sau cùng trong chương Lập trình phía đối tượng. Sang bài sau, bọn họ sẽ bước sang một chương mới - chương xử lý luồngtrong Java.