99. Nested Interface trong lập trình Java

Trong lập trình Java, một Nested Interface (Giao diện lồng nhau) là một giao diện được định nghĩa bên trong một lớp hoặc một interface khác. Tương tự như lớp lồng, Nested Interface được sử dụng để tạo một giao diện mà liên quan chặt chẽ với lớp bên ngoài của nó, giúp tăng tính đóng gói và giữ cho mã của bạn dễ đọc và bảo trì hơn.

Để định nghĩa một Nested Interface, bạn đặt nó bên trong lớp hoặc interface khác, bên trong các cặp ngoặc nhọn của lớp hoặc interface bên ngoài. Dưới đây là cú pháp để định nghĩa Nested Interface:

java
class OuterClass {
    // Thành viên (Member) của lớp bên ngoài

    interface NestedInterface {
        // Khai báo các phương thức của Nested Interface
    }
}

Hoặc:

java
interface OuterInterface {
    // Thành viên (Member) của interface bên ngoài

    interface NestedInterface {
        // Khai báo các phương thức của Nested Interface
    }
}

Nested Interface có thể được sử dụng bên trong lớp bên ngoài hoặc bên trong một interface khác. Nó có thể chứa các khai báo phương thức, nhưng không thể chứa các khai báo biến thành viên (fields).

Dưới đây là một ví dụ về cách sử dụng Nested Interface:

java
class OuterClass {
    private int x;

    interface NestedInterface {
        void display();
    }
}

public class Main {
    public static void main(String[] args) {
        // Tạo một đối tượng của Nested Interface bằng cách triển khai nó
        OuterClass.NestedInterface nested = new OuterClass.NestedInterface() {
            @Override
            public void display() {
                System.out.println("Hello from Nested Interface!");
            }
        };

        // Gọi phương thức của Nested Interface
        nested.display();
    }
}

Trong ví dụ trên, ta đã định nghĩa một Nested Interface NestedInterface trong lớp OuterClass. Sau đó, ta đã tạo một đối tượng của Nested Interface bằng cách triển khai nó ngay lập tức trong phương thức main. Điều này được thực hiện bằng cách sử dụng cú pháp new OuterClass.NestedInterface() {...}. Sau đó, ta đã gọi phương thức display() của Nested Interface từ đối tượng nested.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top