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)
사용
구현객체를 사용하려면 변수를 선언하고 구현 객체를 대입해야한다.