Sobes.tech
Junior — Middle

Чӣ тавр муайян кардани танҳо усули абстрактӣ дар интерфейсе, ки ба интерфейси функсионалӣ дар Java мувофиқат мекунад?

sobes.tech AI

Ҷавоб аз AI

Дар Java, интерфейс функсионалӣ — ин интерфейсе, ки танҳо як методи абстрактӣ дорад (SAM — Single Abstract Method). Барои муайян кардани чунин метод, бояд боварӣ ҳосил кунед, ки дар интерфейс танҳо як метод бе амалишавӣ вуҷуд дорад.

Масалан:

@FunctionalInterface
public interface MyFunctionalInterface {
    void execute(); // ягона методи абстрактӣ

    // Методҳоро бо амалишавии пешфарзӣ илова кардан мумкин аст
    default void log() {
        System.out.println("Logging...");
    }
}

Аннотатсияи @FunctionalInterface зарурӣ нест, аммо тавсия дода мешавад, зеро компилятор санҷиш мекунад, ки интерфейс воқеан функсионалӣ аст.

Бинобар ин, ягона методи абстрактӣ — ин метод бе бадан аст, ки шартномаи интерфейсро муайян мекунад, ва ҳамаи дигар методҳо ё намебошанд, ё дорои амалишавии пешфарзӣ ё статикӣ мебошанд.