자바에서 인터페이스란? 자바 인터페이스 초보자 가이드. 이것을 어떻게 사용 하는가? 예를 첨부했습니다.
게시 됨: 2020-10-31
인터페이스를 사용하는 이유와 시기는?
- 인터페이스는 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
"를 클릭하기만 하면 Auto-generated method stub
으로 IMPL 클래스가 준비됩니다.
팁 3. 실제 Impl 방법.
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 등

무엇 향후 계획?
추상 클래스에 대한 튜토리얼을 작성하고 추상 클래스와 인터페이스의 차이점을 명확하게 보여주는 또 다른 튜토리얼을 작성하는 중입니다.