Sobes.tech
Middle

Ar sąsajos gali būti su realizacija ar be jos metodai?

sobes.tech AI

Atsakymas iš AI

Klasikinėse sąsajose, pavyzdžiui, Java iki 8 versijos, metodai negali turėti įgyvendinimo — jie tik deklaruojami, o įgyvendinimas pateikiamas tų klasių, kurios įgyvendina šią sąsają.

Nuo Java 8, sąsajose atsirado metodai su įgyvendinimu — default metodai. Jie leidžia nustatyti standartinį įgyvendinimą, kurį gali perrašyti klasės.

Pavyzdys:

public interface MyInterface {
    void abstractMethod(); // be įgyvendinimo

    default void defaultMethod() {
        System.out.println("Standartinis įgyvendinimas");
    }
}

Taip, sąsajos gali turėti tiek abstrakčius metodus be įgyvendinimo, tiek metodus su įgyvendinimu (default, static). Tai plečia sąsajų galimybes ir supaprastina API evoliuciją.