środa, 3 sierpnia 2016

Java 8 - domyślne metody w interfejsie

Od javy 8 została wprowadzona interesująca zmiana. Dotychczas interfejs definiował tylko sygnatury metod (czyli zwracany typ, nazwę metody i typy argumentów bez implementacji tej metody). Przykładowo:

public interface Foo {
   void doSomething();
}

Deklarując, że klasa implementuje interfejs, wymuszało się implementację tych metod w owej klasie.

Od javy 8, wprowadzono możliwość zdefiniowania domyślnej implementacji metody:

public interface Foo {
     default void doSomething() {
        //Method body
    }
}

Interfejs nie musi już zawierać tylko deklaracji metod, może zawierać domyślną implementację!

Co to daje w praktyce?
Plusy:
Możesz napisać domyślną metodę, co może oszczędzić powielenia kodu w klasach implementujących interfejs. Klasa implementująca interfejs nie musi implementować metod, które mają domyślną implementację, ale w przypadkach gdy to potrzebne, można je nadpisać w danej klasie.




2 komentarze:

  1. No mi tego brakuje w większości języków. Ale w Android niestety póki co nie skorzystam.

    OdpowiedzUsuń
  2. Borgata Hotel Casino & Spa - TripAdvisor
    Borgata Hotel Casino & Spa · 1 Borgata Way, Atlantic City, NJ 08401. Directions · (609) 317-1000 · Visit Website · Visit Website · Full Review. More Info. Hours, Accepts Credit Cards, 김해 출장안마 Accepts  Rating: 5 · ‎1 review · ‎Price range: $ 이천 출장안마 (Based on 군포 출장샵 Average Nightly Rates for a Standard Room from our Partners)What are some of the property amenities at Borgata Hotel Casino & Spa?Which room amenities 정읍 출장마사지 are 평택 출장마사지 available at Borgata Hotel Casino & Spa?

    OdpowiedzUsuń