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 зарурӣ нест, аммо тавсия дода мешавад, зеро компилятор санҷиш мекунад, ки интерфейс воқеан функсионалӣ аст.
Бинобар ин, ягона методи абстрактӣ — ин метод бе бадан аст, ки шартномаи интерфейсро муайян мекунад, ва ҳамаи дигар методҳо ё намебошанд, ё дорои амалишавии пешфарзӣ ё статикӣ мебошанд.