전체 보기

[백기선 자바] 인터페이스

작성일자
2023/07/20
태그
SUB PAGE
프로젝트
백기선 자바
책 종류
1 more property

[자바 라이브 스터디] 8주차 - 인터페이스

목표) 자바의 인터페이스에 대해 학습하세요.
8
issues

1. 인터페이스 정의하는 방법

정의) 다른 클래스 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스
interface 인터페이스이름 { public static final 타입 상수이름 =; public abstract 메서드이름(매개변수목록); }
Java
복사
특징) 추상클래스와 차이점
추상클래스
추상 메서드 외에도 일반 메서드와 멤버 변수를 가질 수 있음
인터페이스
일반 메서드와 멤버 변수를 가질 수 없음
예외) JDK1.8부터 static 메서드와 default 메서드는 허용됨
모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있음
모든 멤버 변수는 public static final 이어야 하며, 이를 생략할 수 있음
final int a = 1; // public static final int a = 1; static int b = 2; // public static final int b = 2; int c = 3; // public static final int c = 3; public int d = 4; // public static final int d = 4; private int e = 5; // error
Java
복사

2. 인터페이스 구현하는 방법

구현 클래스
정의)
class 클래스이름 implements 인터페이스이름 { // 인터페이스에 정의된 추상메서드를 구현(override) }
Java
복사
특징)
인터페이스 메서드 중 일부만 구현한다면, abstract 붙여서 추상클래스로 선언해야 함
상속(extends)와 구현(implements) 동시에 할 수 있음
익명 구현 객체
정의)
인터페이스이름 변수명 = new 인터페이스이름() { // 인터페이스에 정의된 추상메서드를 구현(override) }
Java
복사
특징)
재사용하지 않고 일회성으로 사용할 때 효율적

3. 인터페이스 상속

정의) 인터페이스는 인터페이스로부터만 상속 받을 수 있음
특징)
클래스와 달리 다중상속 가능
static 상수만 정의할 수 있어서 조상의 멤버 변수와 충돌할 일 거의 없음
클래스와 마찬가지로 자손은 조상의 모든 멤버 상속받음

4. 인터페이스의 기본 메소드 (Default Method), 자바 8

정의) 인터페이스에 메소드 선언이 아니라 구현체를 제공하는 방법
interface 인터페이스이름 { default 반환타입 메서드이름() {} }
Java
복사

5. 인터페이스의 static 메소드, 자바 8

정의) 인스턴스와 관계 없는 독립적인 메서드라 인터페이스에 추가하지 못할 이유가 없어서 JDK 1.8부터 추가됨
특징)
override가 안됨
인터페이스 타입 직접 참조해 호출해야 함