Что такое интерфейс в Java? Руководство для начинающих по интерфейсу Java. Как это использовать? Пример прилагается.
Опубликовано: 2020-10-31
Зачем и когда использовать интерфейсы?
- Интерфейс — это ссылочный тип в Java.
- Это похоже на класс.
- Это набор абстрактных методов.
- Он используется для достижения полной абстракции.
Я полагаю, что это первый вопрос, который вы можете ожидать в Java Interview. Очень простые вопросы, но широко используемые в интервью
На этот вопрос нет идеального ответа, и есть несколько способов ответить на этот вопрос. Может быть, ваш интервьюер ищет практический подход к этим вопросам? Возможно.
Тогда давайте начнем с базового определения интерфейса Java.
Мы рассмотрим то же самое на нескольких примерах.
- Что такое интерфейс в Java?
- Что такое интерфейс в java с примером в реальном времени?
- Зачем использовать интерфейс в java
- Java-дизайн интерфейса
- Самые распространенные вопросы на собеседовании в интерфейсе
Основы интерфейса:

-
interface
— это просто контракт, описание поведения реализующего класса. Класс реализации гарантирует, что у него будут эти методы, которые можно использовать на нем. По сути, это контракт или обещание, которое должен дать класс. - Что, если в ваших проектах все различные реализации используют одни и те же сигнатуры методов? В этом случае лучше всего работает интерфейс.
- На более позднем этапе, после реализации крупного проекта, давайте посмотрим, реализовали ли вы определения интерфейса примерно в 50 местах, что, если вы измените интерфейс? Вы должны внести изменения во все 50 мест в ваших проектах.
- Рекомендуется потратить больше времени на определение интерфейса на этапе проектирования, а не изменять его на более позднем этапе.
- Интерфейс состоит из
singleton
переменных (public static final
) иpublic abstract
методов. Обычно мы предпочитаем интерфейс в реальном времени, когда знаем, что делать, но не знаем, как это сделать. Интерфейс не может содержать поля экземпляра. - Классы, реализующие интерфейс, должны предоставить определение метода для всех существующих методов.
- Класс может реализовывать несколько интерфейсов.
- Реализация интерфейса может быть добавлена к любому существующему стороннему классу.
- Интерфейс может содержать любое количество методов.
- В Java вы не можете создать экземпляр интерфейса.
- Интерфейс не содержит никаких конструкторов.
- Интерфейс не расширяется классом; это реализуется классом.
- Интерфейс может расширять несколько интерфейсов.
Примеры интерфейса:
Совет 1.
Создать интерфейс CrunchifyDatabaseInterface.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package crunchify . com . java . tutorials ; import java . util . Map ; import java . util . UUID ; /** * @author Crunchify.com * What Is an Interface in Java? Beginners Guide to Java Interface. */ public interface CrunchifyDatabaseInterface { // Basic Database CRUD Operations // Insert boolean insertCrunchifyRecord ( UUID id , String name , String address , String phone , String zip , String comments ) ; // Delete public boolean deleteCrunchifyRecord ( UUID id ) ; // Get public Map < String , String > getListOfAllCrunchifyRecords ( ) ; // Update boolean updateCrunchifyRecord ( UUID id , Map < String , String > records ) ; } |
Совет 2.
Реализовать интерфейс CrunchifyDatabaseOracleImpl.java
Когда вы впервые реализуете интерфейс, Eclipse покажет вам добавление нереализованных методов.

Просто нажмите « Add unimplemented methods
», и ваш IMPL-класс должен быть готов с Auto-generated method stub
.
Совет 3. Фактический метод внедрения.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
package crunchify . com . java . tutorials ; import java . util . Map ; import java . util . UUID ; /** * @author Crunchify.com * What Is an Interface in Java? Beginners Guide to Java Interface. */ public class CrunchifyDatabaseOracleImpl implements CrunchifyDatabaseInterface { // Override: Indicates that a method declaration is intended to override a method declaration in a supertype. // If a method is annotated with this annotation type compilers are required to generate an error message unless at least one of the following conditions hold: // The method does override or implement a method declared in a supertype. // The method has a signature that is override-equivalent to that of any public method declared in Object. @Override public boolean insertCrunchifyRecord ( UUID id , String name , String address , String phone , String zip , String comments ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } // UUID(): A class that represents an immutable universally unique identifier (UUID). // A UUID represents a 128-bit value. // There exist different variants of these global identifiers. // The methods of this class are for manipulating the Leach-Salz variant, although the constructors allow the creation of any variant of UUID @Override public boolean deleteCrunchifyRecord ( UUID id ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } // Map(): An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value. // This interface takes the place of the Dictionary class, which was a totally abstract class rather than an interface. @Override public Map < String , String > getListOfAllCrunchifyRecords ( ) { // TODO Provide your actual implementation here based on your need specific to Oracle return null ; } @Override public boolean updateCrunchifyRecord ( UUID id , Map < String , String > records ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } } |
Совет 4.
Аналогичным образом вы можете использовать один и тот же интерфейс для реализации различных операций с базой данных. Например, для DB2, MySQL, MongoDB, Cassandra DB и т. д.

Что дальше?
В процессе написания учебника по абстрактному классу, а затем еще одного учебника, в котором четко показана разница между абстрактным классом и интерфейсом.