В чем разница между реализует и расширяет ключевые слова в Java
В чем разница между следующими ключевыми словами в Java: implements
, extends
?
2 ответа
interface
это абстрактная спецификация того, как class
должен вести себя в то время как class
является конкретной реализацией такой спецификации.
Поэтому, когда вы пишете implements
вы говорите, что выполняете некоторую абстрактную спецификацию в написанной вами реализации.
extends
означает, что вы берете либо реализацию (class
) или спецификация (interface
) и добавить к нему другую или новую функциональность (или изменить спецификацию его поведения), тем самым изменив его поведение и расширив его.
Класс расширяет другой класс и реализует интерфейс. Интерфейс расширяет другой интерфейс.
Интерфейс не имеет реализованных методов, все определенные методы пусты, поэтому, если класс наследует от интерфейса, он должен реализовать свои методы. Но если Class1 наследует от Class2, то у него уже есть несколько рабочих методов (из Class2) и он просто расширяет Class2.