topic★★★★★난이도 · 약 20분
인터페이스
구현 없이 메서드 명세만 선언하는 계약. 클래스는 여러 인터페이스를 동시에 구현할 수 있다.
#Java#다중구현#계약
왜 배우는가
Java 단일 상속의 한계를 우회하는 수단. 실기에서 추상 클래스와 비교 서술형이 자주 나온다.
| 구분 | 추상 클래스 | 인터페이스 |
|---|---|---|
| 키워드 | abstract class | interface |
| 상속 | extends (단일) | implements (다중) |
| 필드 | 일반 필드 가능 | public static final (상수)만 |
| 메서드 | 일반 + 추상 혼합 | 추상(기본), default·static 가능(Java 8+) |
| 생성자 | O | X |
| 목적 | 공통 구현 재사용 | 타입 계약/명세 |
java
interface Flyable {
void fly(); // public abstract 생략됨
default void land() { // Java 8+ default 메서드
System.out.println("착륙");
}
}
interface Swimmable {
void swim();
}
// 다중 구현
class Duck implements Flyable, Swimmable {
public void fly() { System.out.println("오리가 낢"); }
public void swim() { System.out.println("오리가 헤엄"); }
}실기 드릴 1문항
description실기 드릴 · 약술형
추상 클래스와 인터페이스의 차이점을 2가지 이상 서술하시오.