Sobes.tech
Junior — Middle

Kā ir standarta metožu izmantošana saskarnēs un abstraktajās klasēs, un kā tās atšķiras?

sobes.tech AI

Atbilde no AI

Noklusētās metodes (default methods) Java interfeisos ir metodes ar realizāciju, kas ļauj pievienot jaunas metodes interfeisiem, neietekmējot esošo realizāciju. Tās parādījās Java 8.

Noklusēto metožu izmantošana interfeisos:

  • Tās ļauj paplašināt interfeisus, nesabojājot to realizāciju klasēs.
  • Nodrošina pamata realizāciju, kuru var pārrakstīt.

Abstraktās klases var saturēt gan abstraktas (bez realizācijas), gan realizētas metodes. Tās kalpo, lai izveidotu kopēju loģiku saturošu bāzes klasi.

Galvenās atšķirības:

  • Interfeiss ar noklusētajām metodēm nevar saturēt stāvokli (laukus), izņemot konstantes.
  • Abstraktā klase var saturēt laukus un konstruktorus.
  • Klase var realizēt vairākus interfeisus, bet manto tikai vienu abstraktu klasi.

Piemērs noklusētajai metodei interfeisā:

public interface Logger {
    void log(String message);

    default void logError(String error) {
        log("Kļūda: " + error);
    }
}

Šeit logError ir noklusētā metode ar realizāciju, kuru var izmantot vai pārrakstīt klasēs, kas realizē interfeisu.