Реализация против расширений
Реализации и Расширения - это два ключевых слова, встречающиеся в языке программирования Java, которые обеспечивают средства передачи дополнительных функций новому классу. Ключевое слово Implements используется явно для реализации интерфейса, а ключевое слово Extends используется для наследования от (суперкласса). Обратите внимание, что концепции наследования и интерфейсов присутствуют в большинстве других объектно-ориентированных языков программирования, таких как C # и VB. NET, но они предлагают другой синтаксис или ключевые слова для применения этих концепций. Эта статья фокусируется только на ключевых словах «Реализует» и «Расширяет», определенных в Java.
Расширяется
Ключевое слово Extends используется для реализации концепции наследования в языке программирования Java. По сути, наследование обеспечивает повторное использование кода, позволяя расширять свойства и поведение существующего класса с помощью вновь определенного класса. Когда новый подкласс (или производный класс) расширяет суперкласс (или родительский класс), этот подкласс наследует все атрибуты и методы суперкласса. Подкласс может дополнительно переопределить поведение (предоставить новые или расширенные функции для методов), унаследованное от родительского класса. Подкласс не может расширять несколько суперклассов в Java. Следовательно, вы не можете использовать расширения для множественного наследования. Чтобы иметь множественное наследование, вам необходимо использовать интерфейсы, как описано ниже.
Орудия
Ключевое слово реализации в языке программирования Java используется для реализации интерфейса классом. Интерфейс в Java - это абстрактный тип, который используется для определения контракта, который должен быть реализован классами, реализующими этот интерфейс. Обычно интерфейс будет содержать только сигнатуры методов и объявления констант. Любой интерфейс, реализующий конкретный интерфейс, должен реализовывать все методы, определенные в интерфейсе, или должен быть объявлен как абстрактный класс. В Java тип ссылки на объект может быть определен как тип интерфейса. Но этот объект должен быть либо нулевым, либо содержать объект класса, который реализует этот конкретный интерфейс. Используя ключевое слово Implements в Java, вы можете реализовать несколько интерфейсов для одного класса. Интерфейс не может реализовать другой интерфейс. Однако интерфейс может расширять класс.
Разница между агрегатами и надставками
Хотя реализации и расширение - это два ключевых слова, которые обеспечивают механизм наследования атрибутов и поведения класса на языке программирования Java, они используются для двух разных целей. Ключевое слово реализации используется для класса для реализации определенного интерфейса, в то время как ключевое слово Extends используется для подкласса, который расширяется от суперкласса. Когда класс реализует интерфейс, этот класс должен реализовать все методы, определенные в интерфейсе, но когда подкласс расширяет суперкласс, он может или не может переопределить методы, включенные в родительский класс. Наконец, еще одно ключевое различие между реализациями и расширениями заключается в том, что класс может реализовывать несколько интерфейсов, но он может расширяться только от одного суперкласса в Java. В целом использование реализаций (интерфейсов) считается более благоприятным по сравнению с использованием расширений (наследование),по нескольким причинам, таким как более высокая гибкость и возможность минимизировать сцепление. Поэтому на практике программирование на интерфейс предпочтительнее расширения из базовых классов.