Java расширяет и реализует

В Java ключевое слово extends используется для расширения класса или интерфейса, а ключевое слово implements используется для внедрения интерфейсов в класс. Это основное различие между extends и implements.

Обратите внимание, что extends и implements являются зарезервированными ключевыми словами в Java и не могут использоваться в качестве идентификаторов.

1. Java расширяется

В Java мы можем наследовать поля и методы класса, расширяя его с помощью ключевого слова extends. Обратите внимание, что класс Java может расширять один и только один класс. Java не поддерживает множественное наследование, чтобы избежать проблемы ромба.

public class Child extends Parent {//...}

Интерфейс может расширять другой интерфейс с помощью ключевого слова extends при использовании с интерфейсами.

public interface IChild extends IParent {//...}

Возьмем в пример класс ArrayList. Он расширяет класс AbstractList, который в свою очередь расширяет класс AbstractCollection. Так что по сути класс ArrayList имеет методы и поведение обоих родительских классов.

2. Реализации Java

В Java интерфейсы — это способы принудительного исполнения контракта в классах. Интерфейсы заставляют реализующие классы реализовывать определенное поведение. Чтобы реализовать интерфейс, класс должен использовать ключевое слово implements.

public class WorkerThread implements Runnable {//...}

В Java мы можем реализовать более одного интерфейса. В этом случае класс должен реализовать все методы из всех интерфейсов.(или объявить себя абстрактным ).

Например, класс ArrayList реализует четыре интерфейса, то есть List, RandomAccess, Cloneable и Serializable. Он реализовал все методы из этих интерфейсов.

3. Различия между extends и implements

На основе приведенных выше примеров давайте перечислим различия между ключевыми словами extends и implements в Java.

  • Ключевое слово extends используется для наследования класса или интерфейса, а ключевое слово implements используется для реализации интерфейсов.
  • Класс может расширять только один класс, но может реализовывать любое количество интерфейсов.
  • Подкласс, расширяющий суперкласс, может переопределять некоторые методы из суперкласса. Класс должен реализовывать все методы из интерфейсов.
Прокрутить вверх