본문 바로가기
JAVA

ep 06-1. Interface

by L_SU 2022. 12. 11.

인터페이스란?

- 모든 메서드가 추상 메서드로 이뤄진 클래스

- 형식적인 선언만 존재, 구현 X

Interface 인터페이스이름{
	public static final float chrismas =12.24f; //인터페이스에 선언된 모든 변수는 상수
    public void marry();
}
// 인터페이스에 선언된 모든 메서드는 추상메서드

인터페이스 특징

- 인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 O

- 인터페이스의 형변환은 상속에서의 형 변환과 동일한 의미
  but) 상속과 달리 구현코드가 없기에 여러 인터페이스를 구현 가능

- 형 변환시 사용할 수 있는 메서드는 인터페이스에 선언된 메서드만 사용 가능

인터페이스와 다형성

- 인터페이스는 "Client Code"와 서비스를 제공하는 객체 사이의 약속

- 어떤 객체가 어떤 인터페이스 타입이다. = 인터페이스가 제공하는 메서드를 구현했다.

- Client는 어떻게 구현됐는지 상관없이 Interface의 정의만을 보고 사용할 수 있음
  ex) JDBC

- 다양한 구현이 필요한 이넡페이스를 설계하는 일은 매우 중요

인터페이스 사용 이유

- 인터페이스를 이용해 클래스를 구현하면 다른 클래스와 대체가 유연해짐

👉 유지보수가 편해짐

인터페이스 요소

- 상수

- 추상 메서드

- 디폴트 메서드: 기본 구현을 가지는 메서드, 구현 클래스에서 재정의 가능

- 정적 메서드: 인스턴스 생성과 상관없이 인터페이스 타입으로 사용 가능한 메소드

- private 메서드

  • 인터페이스를 구현한 클래스에서 사용하거나 재정의할 수 없음
  • 인터페이스 내부에서만 기능을 제공하기 위해 구현하는 메서드
  • 인터페이스 내부에 private or private static으로 선언한 메서드 구현
    👉private static은 정적메서드에서 사용 가능

인터페이스 상속

- 구현코드의 상속이 아님

👉 형 상속(type inheritance)이라 함

'JAVA' 카테고리의 다른 글

ep 07. 기본 클래스  (0) 2022.12.19
ep 06-2.문제 풀이  (0) 2022.12.11
ep 05-2. 문제 풀이  (0) 2022.12.02
ep 05-1.추상 클래스  (0) 2022.12.02
ep 04-3. 문제풀이3  (0) 2022.11.27