Ответ 1
An interface
представляет собой абстрактную спецификацию того, как должен вести себя class
, тогда как class
является конкретной реализацией такой спецификации.
Поэтому, когда вы пишете implements
, вы говорите, что выполняете абстрактную спецификацию в написанной вами реализации.
extends
означает, что вы берете либо реализацию (class
), либо спецификацию (interface
) и добавляете к ней различные или новые функции (или изменяете спецификацию ее поведения), тем самым изменяя ее поведение и расширяя.