Java

자바 인터페이스 /

lily_y 2023. 10. 3. 19:58

인터페이스(Interface)

  • 프로그램을 설계하고 더 유연한 프로그램으로 만드는 기법
  • 즉 사용자가 기기를 쉽게 동작시키는데 도움을 주는 상호작용의 시스템인것이다 (설계상 이점을 위해 사용하는 클래스 )
  • 개발 코드와 객체가 서로 통신하는 접점 역할을 한다
  • 인터페이스는 객체로 생성할 수 없기 때문에 생성자를 가질 수 없는 것
  • 객체 사용 설명서이므로, 런타임 시 데이터를 저장할 수 있는 필드를 선언할 수 없음
  • 스펙을 지정하게 하여 소프트웨어 확장에 유리
  • 인터페이스를 작성하는 것은 추상 클래스를 작성하는 것과 같다고 보자

 

 

 

  • 상수필드 : 상수는 인터페이스에 고정된 값으로 런타임 시에 데이터를 바꾸 수 없고 반드시 초기값을 대입해야함
  • 추상 메소드 : 객체가 가지고 있는 메소드를 설명한 것 / 어떤 매개갮이 필요하고 리턴 타입이 무엇인지만 알려줌
  • 디폴트 메소드 : 선언은 인터페이스에 선언되지만, 사실은 객체가 가지고 있는 인스턴스 메소드라고 생각하면 된다!
  • 정적 메소드 : 객체가 없어도 인터페이스만으로도 호출이 가능

 

인터페이스의 선언

  • 상수 필드만 선언가능 (데이터 저장하지 않음)
  • 인터페이스에 선언된 필드는 모두 public static final이 기본이기에 입력하지 않아도 됨
  • default
  • Adstract 추상메소드
  • 인터페이스의 모든 멤버는 public 임 (생략 가능)
  • 상수 선언에서 public, final, static 은 생략 가능.
  • 추상 메서드 선언에서 public, abstract 은 생략 가능.

 

인터페이스의 구현

  • 선언 : 자신의 객체가 인터페이스 타입으로 사용할 수 있음

implements 키워드로 명시

                (public class 구현클래스명 implements 인터페이스명)

  • 인터페이스에 정의된 추상 메서드를 모두 구현해야함
  • 추상메소드의 실체 메소드를 작성하는 방법
          자식클래스는 부모 인터페이스의 추상 메소드를 모~~~두 오버라이딩 
                                            ( ⇒ 추상메소드가 5개면 5개 다 불러와서 입력할것) 해야 한다

익명 구현 개체

중첩클래스가 만들어지면서- bin파일에 클래스 파일이 2개 만들어짐 ($1이 붙은게 하나 더 생성)

 

 

다중 인터페이스 구현 클래스

다중 인터페이스를 구현할 경우 : Searchable 이라는 인터페이스 함께 사용 ( public interface Searchable)

 

사용

구현객체를 사용하려면 변수를 선언하고 구현 객체를 대입해야한다.