Sobes.tech
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

Әдеттегі интерфейс бірнеше әдісті қамти алады және ол тікелей лямбдаларға жарамайды.