Wpis z mikrobloga

@IOException: Interfejs to matryca. Jeżeli klasa implementuje, słowo kluczowe implements, interfejs to znaczy, że musi pasować do tej matrycy. W szczególności znaczy to, że musi implementować metody definiowane przez ten interfejs. A jeszcze bardziej w szczególności to znaczy, że musi mieć metody o tej samej sygnaturze, oznaczone annotacją @Override.
Różnica między interfejsem a klasą abstrakcyjną jest taka, że możesz implementować w jednej klasie wiele interfejsów a co za tym
@Sok_Pomaranczowy: Nie jestem pewien czy jest to zmiana in plus, bo taka defaultowa implementacja moze rowniez powodowac pewne komplikacje (ot chocby programista ktory o niej zapomni). Wiem ze kroluje 7, ja sam mentalnie jestem w Java 7 i sam zapomnialem o defaultach.
@martinuz: in plus bo powiedzmy sobie szczerze czasem żmudne implementowanie kilku metod gdy chcemy skorzystać z jednej to był overkill ale najważniejsze będzie czy powstanie jakaś sensowna konwencja. Trudno wymagać jednej metody dla wszystkich implementacji. Z tym, że zapomni to bym polemizował no bo przecież to jest nieobowiązkowa funkcjonalność i jak zapomni to poprostu będzie stara dobra java w wersji niższej niż 8.
@mamapoth: Chodziło mi o to, że taka defaultowa implementacja potem może się odbić czkawką no bo będzie bardzo ogólna, skrojona na wszystkie przypadki jakie komuś przyjdą do głowy. Potem ktoś nie zaimplementuje takie metody pod siebie, ktoś inny użyje i wyjątek w trzecim miejscu gotowy. ( ͡º ͜ʖ͡º)
Kazdego odesłałbym do ksiazek - brata, siostre, kogokolwiek. Serio, dostajemy w praktykantow, takich jak Ty. Materiał odpadowy, bo zamiast szukać w googlach ciagle zawracają dupę i nie wykazuja samodzielnego myslenia. Lecą po miesiacu.


@martinuz: zgadzam się w 80%.

prawda, ludzie wszystko chcą mieć gotowe, najlepiej żeby jeszcze opracować i osobiście wręczyć. to już jest swoista plaga, ale...

niestety internet ma to do siebie że pisać może tam każdy, co utrudnia weryfikację
Ja Ci podam jedno fajne zastosowanie. Robisz sobie klasę, która będzie pobierała pewne dane z internetu. Piszesz w tej klasie całą logikę połączenia, robisz metodkę którą user będzie z zewnątrz odpalał by pobrać dane, piszesz cały parser żeby odczytać dane, przetworzyć na własne struktury i na końcu tworzysz interfejs z jedną metodą. W kodzie w momencie gdy pobierzesz dane, sparsujesz - wywołujesz tą metodę z interfejsu. A użytkownik z zewnątrz otrzyma dane