Java 인터페이스와 implements
코딩Java
읽는데 5분 소요
처음 쓰여진 날: 2026-02-17
마지막 수정일: 2026-02-17
조회수: 6
요약
Java 인터페이스(interface)의 개념과 implements 키워드 사용법을 알아봅니다. 정보처리기사 실기에 출제된 인터페이스 문제를 풀기 위한 핵심 개념을 정리합니다.
인터페이스 핵심 정리
| 개념 | 설명 | 예시 |
|---|---|---|
| 인터페이스 (interface) | "이런 기능을 만들어라"라는 약속(규칙) | interface Person { } |
| implements | 인터페이스를 구현(약속을 지키겠다고 선언) | class A implements Person { } |
| 추상 메서드 | 인터페이스 안에 선언만 된 메서드 (본문 없음) | void sayHello(); |
| 다형성 | 같은 메서드 호출이 객체에 따라 다르게 동작하는 성질 | Person p = new A(); |
인터페이스란?
인터페이스(interface) 는 클래스가 반드시 구현해야 할 메서드의 목록을 정의하는 것입니다.
쉽게 말하면, "이 기능들을 반드시 만들어야 해" 라는 약속(계약) 입니다.
java
코드 하이라이팅 중...
위 코드에서 Person 인터페이스는 sayHello()라는 메서드를 선언하고 있습니다. 하지만 메서드의 본문(구체적인 동작) 은 없습니다. 본문은 이 인터페이스를 구현하는 클래스에서 작성합니다.
인터페이스 vs 클래스
인터페이스는 메서드의 이름, 매개변수, 리턴 타입만 선언하고 본문(중괄호 {} 안의 코드)은 작성하지 않습니다. 실제 동작은 이 인터페이스를 implements한 클래스에서 구현합니다. 그래서 인터페이스의 메서드는 세미콜론(;)으로 끝나고, 클래스의 메서드는 중괄호 {} 안에 코드가 있습니다.
implements 키워드
클래스가 인터페이스를 구현할 때 implements 키워드를 사용합니다.
java
코드 하이라이팅 중...
핵심 규칙
- 인터페이스를 구현하는 클래스는
implements를 사용합니다 - 인터페이스에 선언된 모든 메서드를 반드시 구현해야 합니다
- 구현할 때 메서드 앞에 public 을 붙여야 합니다
extends와 implements의 차이
클래스를 상속할 때는 extends, 인터페이스를 구현할 때는 implements를 사용합니다. 이 둘을 혼동하면 안 됩니다.
extends vs implements 비교
| 키워드 | 사용 대상 | 의미 | 예시 |
|---|---|---|---|
| extends | 클래스 -> 클래스 | 상속 (부모 기능을 물려받음) | class Child extends Parent |
| implements | 클래스 -> 인터페이스 | 구현 (약속한 기능을 만듦) | class A implements Person |
java
코드 하이라이팅 중...
다형성
다형성(Polymorphism) 은 그리스어 poly(여러) + morph(형태), 즉 "여러 형태" 라는 뜻입니다. 프로그래밍에서는 같은 메서드 호출이 객체에 따라 다르게 동작하는 성질을 말합니다.
Java에서는 인터페이스 타입의 변수에 구현 클래스의 객체를 담아 다형성을 구현합니다.
java
코드 하이라이팅 중...
같은 Person 타입이지만, 실제로 어떤 클래스의 객체를 담았느냐에 따라 sayHello()의 동작이 달라집니다. 이것이 다형성 입니다.
시험에서 자주 나오는 패턴
Person person = new 올리브영직원(); 처럼 인터페이스 타입 변수에 구현 클래스 객체를 담고, person.sayHello()를 호출하는 패턴이 자주 출제됩니다. 이때 실행되는 것은 실제 객체(올리브영직원)의 메서드입니다.
인터페이스 여러 개 구현
Java에서 클래스는 인터페이스를 여러 개 구현할 수 있습니다. 쉼표(,)로 구분합니다.
java
코드 하이라이팅 중...
참고: extends와 implements를 동시에 사용할 수도 있습니다
class Dog extends Animal implements Walkable { } 처럼 클래스 상속과 인터페이스 구현을 동시에 할 수 있습니다. 이때 extends가 먼저 오고 implements가 뒤에 옵니다.
Runnable 인터페이스로 스레드를 만들 수 있습니다
Java가 제공하는 Runnable 인터페이스를 구현하면 해당 클래스를 스레드로 실행할 수 있습니다. 22년 1회 실기에 출제되었습니다. 스레드(Thread)와 Runnable 페이지에서 자세히 알아보세요.
인터페이스와 비슷한 추상 클래스도 알아두세요
인터페이스와 비슷하지만, 일반 메서드와 필드도 가질 수 있는 추상 클래스(abstract class)가 있습니다. 추상 클래스 페이지에서 자세히 알아보세요.