Junior — Middle
101
Бағдарламалауда әдеттегі интерфейс пен функционалды интерфейсті салыстырғанда қандай айырмашылықтар байқалады?
Сұралған компаниялар
Передовые Платежные Решения
AI-дан жауап
sobes.tech AI
Java-дағы әдеттегі интерфейс — бұл бірнеше абстрактілі әдістерді (Java 8-ге дейін) және әдепкі және статикалық әдістерді (Java 8-ден бастап) қамти алатын интерфейс. Функционалды интерфейс — бұл дәл бір абстрактілі әдісі бар интерфейс, оны лямбда өрнектері мен әдіс сілтемелері үшін мақсатты тип ретінде пайдалануға болады.
Негізгі айырмашылықтар:
- Абстрактілі әдістер саны: функционалды интерфейс дәл бір абстрактілі әдісті қамтиды, ал әдеттегі — бірнеше болуы мүмкін.
- Қолданылуы: функционалды интерфейстер функционалды бағдарламалау үшін арналған, олар лямбдалармен қысқа код жазуға мүмкіндік береді.
- @FunctionalInterface аннотациясы: интерфейстің функционалды екенін нақты көрсету үшін пайдаланылады (міндетті емес, бірақ ұсынылады).
Функционалды интерфейстің мысалы:
@FunctionalInterface
public interface Calculator {
int calculate(int a, int b);
}
// Лямбда өрнегімен қолдану
Calculator sum = (a, b) -> a + b;
System.out.println(sum.calculate(5, 3)); // 8
Әдеттегі интерфейс бірнеше әдісті қамти алады және ол тікелей лямбдаларға жарамайды.