Skip to content
Rikkei AcademyRikkei Academy
  • Khóa học

    Hướng dẫn bởi những giảng viên chất lượng từ các trường đại học công nghệ top đầu Việt Nam

    Kiểm tra độ phù hợp

    5 phút kiểm tra nhanh liệu bạn có phù hợp với ngành Công nghệ thông tin

    Tìm hiểu thêm
    Cho người mới bắt đầu

    Bắt đầu sự nghiệp lập trình từ con số 0 với lộ trình học tập chỉ sau 6 tháng

    Tìm hiểu thêm
    Lập trình viên Nhật Bản

    Bắt đầu sự nghiệp lập trình với khả năng tiếng Nhật từ N3

    Tìm hiểu thêm
    Phân tích dữ liệu - HUST

    Nâng cấp nghiệp vụ, tiến bước sự nghiệp với phân tích dữ liệu

    Tìm hiểu thêm
    Kỹ sư Công nghệ thông tin - PTIT

    Trở thành Kỹ sư Công nghệ thông tin trong thời đại số

    Tìm hiểu thêm
    IT Fresher - Rikkei Certificate

    Trở thành IT Fresher với khởi đầu khác biệt, doanh nghiệp săn đón

    Tìm hiểu thêm
  • Tài nguyên
    • Icon1Tài nguyên học tập
      • Blog
      • Kiến thức chuyên môn
      • Khám phá Nhật Bản
    • Icon Menu1Tin tức công nghệ
      • What’s New – What’s Next?
      • Thông tin sự kiện
  • Vì sao chọn Rikkei Education
    • Về Rikkei Education
    • Hệ sinh thái Rikkei
    • Nhân sự Rikkei Education
    • Cộng đồng RA Alumni
    • Ươm mầm xanh & CSR
    • Cơ hội nghề nghiệp
  • Ngôn ngữ
    • Tiếng Việt
    • Tiếng Anh
    • Tiếng Nhật
Trang chủ / Kiến thức chuyên môn / Interface Trong Java Là Gì Bạn Đã Biết Chưa?
  • Dành cho người mới bắt đầu
  • Dành cho người đã có nền tảng
  • Dành cho người muốn đi Nhật
  • Nhận kho tài liệu miễn phí
Test tư duy lập trình miễn phí

Đăng ký nhận tin tức từ Rikkei Academy

    29/05/2023

    Interface Trong Java Là Gì Bạn Đã Biết Chưa?

    Phí Thanh 04 phút đọc
    Interface Trong Java Rikkei Academy

    Mục lục

    Toggle
    • Interface trong Java là gì?
    • Mục đích sử dụng Interface trong Java
      • Tính trừu tượng hoàn toàn
      • Đa kế thừa
      • Tính đa hình
      • Kết nối lỏng (Loose Coupling)
    • Một số thao tác cơ bản của Interface trong Java
      • Khai báo Interface (Declare)
      • Triển khai Interface (Implement)
      • Mở rộng Interfaces (Extends)
      • Mở rộng nhiều Interfaces
      • Đánh dấu Interface (Tagging)
    • Mối quan hệ giữa lớp và interface trong Java
    • Kết luận

    Việc nắm vững các khái niệm cơ bản trong Java sẽ giúp bạn có một nền tảng chắc chắn trong quá trình học lập trình. Trong bài viết này, hãy cùng Rikkei Academy đi tìm hiểu về Interface trong Java là gì.

    Interface trong Java là gì?

    Trong Java, một interface là một cách chỉ định hành vi của một lớp bằng cách cung cấp một tập hợp phương thức trừu tượng. Interface là một trong những khái niệm cốt lõi của Java và được sử dụng để đạt được không chỉ tính trừu tượng mà còn tính đa hình và đa kế thừa.

    Một số đặc điểm nổi bật của Interface trong Java:

    • Interface không thể được sử dụng để tạo đối tượng.
    • Interface không thể chứa constructor
    • Các phương thức không có thân và thân phương thức được cung cấp bởi lớp triển khai.
    • Các phương thức trong interface được khai báo mặc định là trừu tượng (abstract) và công khai (public) và từ Java 9, bạn có thể khai báo phương thức private trong interface.
    • Với bản thấp hơn Java 8, khi triển khai một interface, tất cả các phương thức trong interface đó phải được ghi đè. Tuy nhiên, tại bản Java 8 giới thiệu phương thức mặc định (default method) cho phép b
    • Các thuộc tính trong interface được khai báo mặc định là công khai (public), tĩnh (static) và không thay đổi (final).

    >> Tìm hiểu thêm: 5 Phút Tìm Hiểu Về Abstract Class Trong Java

    Mục đích sử dụng Interface trong Java

    Interface trong Java được sử dụng để đạt một số mục đích chính sau:

    Một số mục đích sử dụng Interface trong Java
    Một số mục đích sử dụng Interface trong Java

    Tính trừu tượng hoàn toàn

    Trừu tượng hoàn toàn là khái niệm quan trọng trong lập trình hướng đối tượng. Tính trừu tượng hoàn toàn của interface chỉ định các phương thức hoặc các hành động mà một đối tượng có thể thực hiện mà không quan tâm đến cách thức thực hiện của chúng. Nó cho phép các đối tượng được tách biệt hoàn toàn với nhau và đảm bảo tính tương thích giữa các đối tượng khác nhau.

    Đa kế thừa

    Java không hỗ trợ đa kế thừa, nhưng sử dụng interface, bạn có thể đạt được đa kế thừa. Việc này cho phép một lớp triển khai nhiều interface và sử dụng các phương thức được định nghĩa trong các interface đó. Tính năng này giúp giảm sự lặp lại mã và tăng tính tái sử dụng trong lập trình hướng đối tượng.

    Tính đa hình

    Tính đa hình trong lập trình là khả năng của đối tượng để thực thi các phương thức khác nhau tùy thuộc vào loại đối tượng cụ thể mà nó đang tham chiếu đến trong runtime. Trong Java, chúng ta có thể đạt được tính đa hình bằng cách sử dụng các interface để triển khai các phương thức khác nhau cho các lớp khác nhau.

    Kết nối lỏng (Loose Coupling)

    Thuật ngữ Coupling (kết nối) mô tả sự phụ thuộc của một lớp vào lớp khác. Vì vậy, khi sử dụng một interface, chúng ta định nghĩa các phương thức và chữ ký (method signature) của chúng một cách độc lập. Như vậy, tất cả các phương thức và lớp đều hoàn toàn độc lập, không phụ thuộc vào nhau, từ đó đạt được Loose Coupling (kết nối lỏng).

    Một số thao tác cơ bản của Interface trong Java

    Dưới đây là một số thao tác cơ bản với Interface trong Java:

    Khai báo Interface (Declare)

    Để khai báo Interface trong Java chúng ta sử dụng cú pháp sau:

    [access modifier] interface <tên Interface> [extends SuperInterface1, SuperInterface2, …] {

    // Khai báo phương thức và biến trong Interface

    }

    Trong đó:

    • Access modifier: chỉ phạm vi truy cập của interface, gồm public, default hoặc private (Java 9)
    • SuperInterface1, SuperInterface2,… là danh sách các interface mà interface hiện tại được kế thừa (nếu có)

    Trong một interface, chúng ta được phép khai báo:

    • Biến, hằng số
    • Phương thức trừu tượng (abstract method)
    • Phương thức static (static method)
    • Phương thức mặc định (default method) hỗ trợ từ Java 8

    Triển khai Interface (Implement)

    Khi một lớp triển khai một interface, bạn có thể coi lớp đó như đang ký hợp đồng, đồng ý thực hiện các hành vi cụ thể của interface. Nếu một lớp không thực hiện tất cả các hành vi của interface, lớp đó phải khai báo mình là abstract.

    Một lớp sử dụng từ khóa “implements” để triển khai một interface. Từ khóa “implements” xuất hiện trong khai báo lớp sau phần “extends” của khai báo.

    Ví dụ:

    // Khai báo interface

    public interface Printable {

        void print();

    }

    // Triển khai interface

    public class Document implements Printable {

        public void print() {

            System.out.println(“Printing a document…”);

        }

    }

    // Sử dụng đối tượng triển khai interface

    public class Main {

        public static void main(String[] args) {

            Printable obj = new Document();

            obj.print(); // Output: Printing a document…

        }

    }

    Trong ví dụ này, interface Printable định nghĩa một phương thức print(). Lớp Document triển khai interface này bằng cách cung cấp một cài đặt cho phương thức này. Trong phương thức print() của Document, ta đơn giản in ra một thông báo.

    Mở rộng Interfaces (Extends)

    Một interface có thể mở rộng một interface khác giống như một lớp có thể mở rộng một lớp khác. Từ khóa “extends” được sử dụng để mở rộng một interface, và interface con kế thừa các phương thức của interface cha.

    // Khai báo interface cha

    public interface Animal {

        void eat();

    }

    // Khai báo interface con mở rộng interface cha

    public interface Cat extends Animal {

        void play();

    Trong ví dụ này, interface Animal định nghĩa phương thức eat(). Interface Cat mở rộng Animal và định nghĩa thêm một phương thức play(). Bằng cách này, khi bạn triển khai interface Cat, bạn sẽ cần cung cấp cả hai phương thức eat() và play().

    Mở rộng nhiều Interfaces

    Một lớp Java chỉ có thể mở rộng một lớp cha. Đa thừa kế không được phép. Tuy nhiên, các interface không phải là các lớp và một interface có thể mở rộng nhiều hơn một interface cha. Từ khóa “extends” được sử dụng một lần, và các interface cha được khai báo trong một danh sách phân tách bằng dấu phẩy.

    Nếu ví dụ phía trên có 1 interface cha là Animal và 1 interface con là Cat, tại đây chúng ta thêm 1 interface là Earth thì chúng ta sẽ viết như sau:

    public interface Cat extends Animal, Earth 

    Đánh dấu Interface (Tagging)

    Trong Java, đánh dấu một lớp hoặc interface là một cách để chỉ định rằng lớp hoặc interface đó có chức năng gì đó đặc biệt. Ví dụ, interface Serializable được sử dụng để chỉ định rằng một đối tượng có thể được chuyển đổi thành một dạng dữ liệu có thể lưu trữ hoặc chuyển qua mạng. Việc đánh dấu interface là một cách để cung cấp cho trình biên dịch hoặc các công cụ khác thông tin về tính chất của một đối tượng hoặc lớp

    Ví dụ:

    package java.io;

    public interface Serializable {

    }

    Mục đích đánh dấu interface là để:

    • Để tạo một interface cha chung giữa các interface có liên quan và thêm một kiểu dữ liệu vào một lớp.
    • Thêm một kiểu dữ liệu vào một lớp. Một lớp khi triển khai một interface đánh dấu không cần phải định nghĩa bất kỳ phương thức nào (vì interface không có phương thức), nhưng lớp đó trở thành một kiểu interface thông qua đa hình.

    Mối quan hệ giữa lớp và interface trong Java

    Lớp có thể triển khai một hoặc nhiều interface để định nghĩa các phương thức mà lớp đó cần phải cài đặt. Interface chỉ định nghĩa các phương thức mà các lớp triển khai phải cài đặt. Như được hiển thị trong hình dưới đây, một lớp kế thừa từ một lớp khác, một giao diện kế thừa từ một giao diện khác và một lớp triển khai một interface.

    Mối quan hệ giữa lớp và interface trong Java
    Mối quan hệ giữa lớp và interface trong Java

    >> Đọc thêm: Interface Và Abstract Class Java: Khác Biệt Và Cách Sử Dụng

    Kết luận

    Qua bài viết này, Rikkei Academy đã giúp bạn hiểu rõ hơn về Interface trong Java. Với các bạn mới bắt đầu tìm hiểu về lập trình Java, việc nắm vững các khái niệm cơ bản là vô cùng quan trọng để giúp bạn xây dựng một nền tảng vững chắc giúp quá trình học lập trình trở nên nhanh chóng và hiệu quả hơn!

    Nếu bạn đang tìm kiếm một khóa học lập trình với lộ trình tinh gọn, kiến thức, kỹ năng bám sát thực tế và cam kết việc làm thì hãy tham khảo Rikkei Academy nhé! Để nhận thông tin chi tiết, đăng ký tại đây để nhận tư vấn miễn phí nhé!

    Nguồn tham khảo:

    https://www.javatpoint.com/interface-in-java

    https://www.tutorialspoint.com/java/java_interfaces.htm

    Bài viết cùng chủ đề

    • Override Va Overload Rikkei Academy 20/07/202304 phút đọc Override Và Overload Trong Java Khác Nhau Như Thế Nào?
    • nên học ngôn ngữ lập trình nào để dễ xin việc 14/08/202204 phút đọc Nên học ngôn ngữ lập trình nào để dễ xin việc?
    • Thread Trong Java Rikkei Academy 18/07/202304 phút đọc Thread trong Java: 5 Phút Giải Mã Tất Tần Tật Về Luồng
    • Java Platfrom là gì 19/05/202304 phút đọc Java Platform là gì? Những điều bạn cần biết về Java Platform
    • 10 phương pháp tự học lập trình vô cùng hiệu quả mà không phải ai cũng biết 04/10/202204 phút đọc 10 Phương Pháp Tự Học Lập Trình Vô Cùng Hiệu Quả
    • Map Trong Java Rikkei Academy 03/07/202304 phút đọc Map Trong Java: 5 Phút Tìm Hiểu Chi Tiết Nhất!

    Logorikkei

    Công ty TNHH Rikkei Education

    • Tổ chức quản lý trang thông tin: Công ty TNHH Rikkei Education
    • Quản lý trang thông tin: Nguyễn Văn Nam (phòng Marketing)

     

    Trụ sở Hà Nội: Tầng 7 tháp A toà Sông Đà, đường Phạm Hùng, quận Nam Từ Liêm, Hà Nội

    Hotline: 0862 069 233

    Email: academy@rikkeisoft.com

    Khoá học
    • Cho người mới bắt đầu
    • Lập trình viên Nhật Bản
    • Kỹ sư CNTT – PTIT
    • Data Analysis – HUST
    • IT Fresher – Rikkei Certificate
    Tài nguyên
    • Blog
    • Kiến thức chuyên môn
    • Khám phá Nhật Bản
    • Thông tin sự kiện
    • What’s New – What’s Next?
    Vì sao chọn Rikkei Education
    • Về Rikkei Education
    • Hệ sinh thái Rikkei
    • Nhân sự Rikkei Education
    • Cộng đồng RA Alumni
    • Uơm mầm xanh & CSR
    • Cơ hội nghề nghiệp
    Cơ sở 1

    Tầng 7, khối A tòa nhà Sông Đà, đường Phạm Hùng , Phường Mỹ Đình 1, Quận Nam Từ Liêm, Hà Nội.

    Hotline: 0862 069 233

    Cơ sở 2

    Tầng 22, khối A tòa nhà Sông Đà, đường Phạm Hùng , Phường Mỹ Đình 1, Quận Nam Từ Liêm, Hà Nội.

    Hotline: 086 206 9233

    Cơ sở 3

    Tầng 4, tòa nhà Ricco, số 363 Nguyễn Hữu Thọ, phường Khuê Trung, Quận Cẩm Lệ, Đà Nẵng

    Hotline: 0904 694 869

    Cơ sở 4

    Tầng 12, Tòa nhà Đảm Bảo An Toàn Hàng Hải phía Nam Số 42 đường Tự Cường, phường 4, Tân Bình, TP. Hồ Chí Minh.

    Cơ sở 5

    Tầng 3, toà TSA Bulding, Số 77 Lê Trung Nghĩa, Phường 12, Tân Bình, TP. Hồ Chí Minh.

    Hotline: 0962 703 893

    Cơ sở Fukuoka

    Tokan Fukuoka 2nd Building 417 Hiecho 1-chome-18, Hakata-ku, Fukuoka, Japan

    • Nhắn tin qua Zalo
    • Nhắn tin qua Facebook
    • 086 206 92 33
    Copyright 2024 © Rikkei Academy All rights reserved.
    • Khóa học

      Hướng dẫn bởi những giảng viên chất lượng từ các trường đại học công nghệ top đầu Việt Nam

      Kiểm tra độ phù hợp

      5 phút kiểm tra nhanh liệu bạn có phù hợp với Công nghệ thông tin

      Tìm hiểu thêm
      Cho người mới bắt đầu

      Bắt đầu từ con số 0 với lộ trình học tập trong 6 tháng

      Tìm hiểu thêm
      Lập trình viên Nhật Bản

      Bắt đầu sự nghiệp lập trình với khả năng tiếng Nhật

      Tìm hiểu thêm
      Phân tích dữ liệu - HUST

      Nâng cấp nghiệp vụ, tiến bước sự nghiệp với phân tích dữ liệu

      Tìm hiểu thêm
      Kỹ sư Công nghệ thông tin - PTIT

      Trở thành Kỹ sư Công nghệ thông tin trong thời đại số

      Tìm hiểu thêm
      IT Fresher - Rikkei Certificate

      Trở thành IT Fresher với khởi đầu khác biệt, doanh nghiệp săn đón

      Tìm hiểu thêm
    • Khóa học
    • Tài nguyên
      • Icon1Tài nguyên học tập
        • Blog
        • Kiến thức chuyên môn
        • Khám phá Nhật Bản
      • Icon Menu1Tin tức công nghệ
        • What’s New – What’s Next?
        • Thông tin sự kiện
    • Vì sao chọn Rikkei Education
      • Về Rikkei Education
      • Hệ sinh thái Rikkei
      • Nhân sự Rikkei Education
      • Cộng đồng RA Alumni
      • Ươm mầm xanh & CSR
      • Cơ hội nghề nghiệp
    • Ngôn ngữ
      • Tiếng Việt
      • Tiếng Anh
      • Tiếng Nhật