• Home
  • Công nghệ
  • Interface Trong Java Là Gì? Hướng Dẫn Chi Tiết Cho Người Mới Bắt Đầu [2024]
Interface trong Java

Interface Trong Java Là Gì? Hướng Dẫn Chi Tiết Cho Người Mới Bắt Đầu [2024]

Trong Java, Interface là một khuôn mẫu (template) chứa các phương thức trừu tượng và các hằng số. Interface được sử dụng để xác định các hành vi mà các lớp phải thực hiện nhưng không cung cấp cách thực hiện chúng.

Interface giúp:

  • Định nghĩa một tập hợp các quy tắc mà các lớp thực thi phải tuân theo.
  • Hỗ trợ tính đa kế thừa, điều mà Java không cho phép với các lớp thường.

Video Source KeepOnCoding

  • Chỉ chứa các phương thức trừu tượng (từ Java 8 có thêm các phương thức mặc định và phương thức static).
  • Không thể chứa biến thông thường, chỉ chứa các hằng số (biến staticfinal).
  • Không thể khởi tạo trực tiếp, mà phải được thực thi (implemented) bởi một lớp hoặc mở rộng (extended) bởi một Interface khác.
  • Một lớp có thể thực thi nhiều Interface (đa kế thừa).

2. Cách khai báo Interface

Cú pháp khai báo interface trong Java

				
					interface InterfaceName {
    // Các hằng số
    public static final int CONSTANT = 10;

    // Các phương thức trừu tượng
    public void method1();

    // Phương thức mặc định (từ Java 8)
    default void defaultMethod() {
        System.out.println("Default method in Interface");
    }

    // Phương thức static (từ Java 8)
    static void staticMethod() {
        System.out.println("Static method in Interface");
    }
}

				
			

2. Cách khai báo Interface

Ví dụ về interface trong Java

				
					interface Animal {
    void eat();   // Phương thức trừu tượng
    void sleep(); // Phương thức trừu tượng
}

				
			

3. So sánh Interface và Abstract Class

Tiêu chíInterfaceAbstract Class
Từ khóainterfaceabstract
Phương thứcChỉ chứa phương thức trừu tượng (Java 8 có thêm defaultstatic).Có thể chứa cả phương thức trừu tượng và không trừu tượng.
BiếnChỉ chứa hằng số (staticfinal).Có thể chứa biến thông thường.
Đa kế thừaMột lớp có thể thực thi nhiều Interface.Một lớp chỉ có thể kế thừa một Abstract Class.
Mục đíchĐịnh nghĩa hành vi (behavior).Định nghĩa một phần triển khai sẵn (partial implementation).

4. Ví dụ minh họa Interface

Ví dụ 1: Sử dụng Interface cơ bản

				
					interface Animal {
    void eat();
    void sleep();
}

class Dog implements Animal {
    public void eat() {
        System.out.println("Dog eats bones");
    }

    public void sleep() {
        System.out.println("Dog sleeps 8 hours a day");
    }

    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.eat();
        dog.sleep();
    }
}

				
			

Ví dụ 2: Interface với nhiều lớp thực thi

				
					interface Vehicle {
    void start();
    void stop();
}

class Car implements Vehicle {
    public void start() {
        System.out.println("Car starts with a key");
    }

    public void stop() {
        System.out.println("Car stops with brakes");
    }
}

class Bike implements Vehicle {
    public void start() {
        System.out.println("Bike starts with a kick");
    }

    public void stop() {
        System.out.println("Bike stops with disc brakes");
    }
}

public class TestVehicle {
    public static void main(String[] args) {
        Vehicle car = new Car();
        Vehicle bike = new Bike();

        car.start();
        car.stop();

        bike.start();
        bike.stop();
    }
}

				
			

Ví dụ 3: Interface kế thừa Interface khác

				
					interface Animal {
    void eat();
}

interface Mammal extends Animal {
    void walk();
}

class Human implements Mammal {
    public void eat() {
        System.out.println("Human eats cooked food");
    }

    public void walk() {
        System.out.println("Human walks on two legs");
    }
}

public class TestHuman {
    public static void main(String[] args) {
        Human human = new Human();
        human.eat();
        human.walk();
    }
}

				
			

5. Ưu điểm và nhược điểm của Interface

Ưu điểm:

  • Đa kế thừa: Một lớp có thể thực thi nhiều Interface.
  • Tính module hóa: Tách biệt rõ ràng các hành vi (behavior) cụ thể.
  • Tăng tính linh hoạt: Các lớp thực thi Interface có thể triển khai theo nhiều cách khác nhau.

Nhược điểm:

  • Không hỗ trợ triển khai sẵn: Toàn bộ logic phải được viết lại trong các lớp thực thi.
  • Hạn chế với các tính năng phức tạp: Chỉ nên sử dụng Interface để định nghĩa hành vi đơn giản.

6. Câu hỏi thường gặp về Interface

Q: Interface có thể chứa constructor không?

A: Không, Interface không thể chứa constructor vì nó không thể khởi tạo đối tượng.

Q: Một Interface có thể kế thừa từ một Interface khác không?

A: Có, một Interface có thể kế thừa từ một hoặc nhiều Interface khác bằng từ khóa extends.

Q: Một lớp có thể kế thừa nhiều Interface không?

A: Có, Java cho phép một lớp thực thi nhiều Interface, ví dụ:

				
					class MyClass implements Interface1, Interface2 {
    // Triển khai các phương thức của Interface1 và Interface2
}

				
			

Kết luận

Interface là một phần quan trọng trong Java, giúp định nghĩa các hành vi và hỗ trợ tính đa kế thừa. Để làm chủ lập trình Java, bạn cần nắm vững cách sử dụng Interface, cũng như cách kết hợp chúng với các tính năng khác của ngôn ngữ.

Tham khảo thêm:

 

Bài viết liên quan

Công Nghệ Đám Mây: Giải Pháp Lưu Trữ Và Xử Lý Dữ Liệu Tối Ưu

Công Nghệ Đám Mây: Giải Pháp Lưu Trữ Và Xử Lý Dữ Liệu Tối Ưu Công nghệ đám…

ByByTrường SơnMar 19, 2025

Thực Tế Ảo (VR) và Thực Tế Tăng Cường (AR): Cánh Cửa Đến Thế Giới Mới

That’s a good title! It’s concise and accurately reflects the transformative potential of VR and AR. However, depending…

ByByTrường SơnMar 19, 2025

Lập Trình 4.0: Học Tập Và Thực Hành Để Thành Công

Lập Trình 4.0: Học Tập Và Thực Hành Để Thành Công Lập trình 4.0 không chỉ đơn thuần…

ByByTrường SơnMar 19, 2025

5 Công Nghệ Đột Phá Thay Đổi Cách Chúng Ta Sống

Năm công nghệ đột phá đang thay đổi cách chúng ta sống bao gồm: Trí tuệ nhân tạo…

ByByTrường SơnMar 19, 2025

Subscribe
Thông báo của
guest

0 Comments
Cũ nhất
Mới nhất Được bình chọn nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận

0
Rất mong nhận được suy nghĩ của bạn, vui lòng bình luận.x
()
x