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ą.