Hej, po co tak właściwie są interfejsy? Mamy w nich metody. Potem implementujemy interfejs do klasy i nadpisujemy metodę. To dlaczego nie można od razu zadeklarować metody w klasie?
Jak ktoś inny będzie zajmował się budową narzędzi, a ty je tylko zrzutujesz na interface i możesz robić.
A jak przyjdzie aktualizacja, to twojego kodu nie trzeba zmieniać i tak będzie działać.
Pisząc łopatologicznie. Interfejs to pewien standard, zespół metod które łączą różne obiekty.
Np. język angielski to interfejs który służy do porozumiewania sie różnych ludzi. Każdy z ludzi różnie implementuje ten interfejs - jedni lepiej inni gorzej.
Podobnie w programowaniu - masz np. system cache i metodę interfejsu która przeprowadza zapis do cache, teraz różne obiekty różnie implementują ten interfejs - jeden może zapisywać do pliku, inny do bazy danych, a jeszcze inny wysyłać po FTP etc, Interfejs w takich sytuacjach jest po prostu wygodny, szczególnie, że obiekt może implementować wiele różnych interfejsów na raz.