Какая разница между реализациями и расширением ключевых слов в Java

В чем разница между следующими ключевыми словами в Java: implements, extends?

Ответ 1

An interface представляет собой абстрактную спецификацию того, как должен вести себя class, тогда как class является конкретной реализацией такой спецификации.

Поэтому, когда вы пишете implements, вы говорите, что выполняете абстрактную спецификацию в написанной вами реализации.

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

Ответ 2

класс расширяет другой класс и реализует интерфейс. интерфейс расширяет другой интерфейс.
Интерфейс не имеет каких-либо реализованных методов, все определенные методы пустые, поэтому, если класс наследует от интерфейса, он должен реализовать его методы. Но если Class1 наследуется от Class2, то у него уже есть некоторые рабочие методы (из класса 2) и просто extends Class2.