topic난이도 · 약 20

인터페이스

구현 없이 메서드 명세만 선언하는 계약. 클래스는 여러 인터페이스를 동시에 구현할 수 있다.

#Java#다중구현#계약
왜 배우는가

Java 단일 상속의 한계를 우회하는 수단. 실기에서 추상 클래스와 비교 서술형이 자주 나온다.

구분추상 클래스인터페이스
키워드abstract classinterface
상속extends (단일)implements (다중)
필드일반 필드 가능public static final (상수)만
메서드일반 + 추상 혼합추상(기본), default·static 가능(Java 8+)
생성자OX
목적공통 구현 재사용타입 계약/명세
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가지 이상 서술하시오.