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

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

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам