java

Interface 에 관하여

heejunp 2025. 1. 19. 20:52

자바에서 인터페이스(Interface)는 클래스와 비슷한 형태를 가지지만, 클래스와는 다르게 특정 동작을 정의하고 해당 동작을 구현하도록 강제하는 데 사용됩니다. 인터페이스는 객체지향 프로그래밍의 중요한 개념 중 하나로, 다형성과 설계의 유연성을 제공합니다. 이번 글에서는 Java Interface의 개념, 사용 방법, 주요 특징, 그리고 활용 예제를 살펴보겠습니다.

1. 인터페이스란 무엇인가?

인터페이스는 추상 메서드(구현되지 않은 메서드)와 상수를 포함할 수 있는 참조 타입입니다. 인터페이스는 클래스가 구현해야 하는 메서드의 청사진을 정의합니다.

인터페이스의 목적

  • 표준화: 동일한 동작을 여러 클래스에 강제적으로 구현하도록 합니다.
  • 다형성 지원: 객체의 구현체를 숨기고 인터페이스를 통해 동작하도록 합니다.
  • 유연한 설계: 클래스 간 결합도를 낮추고, 확장성과 유지보수성을 높입니다.

2. 인터페이스 정의 및 구현

2.1 인터페이스 정의

인터페이스는 interface 키워드를 사용하여 정의합니다.

public interface Animal {
    void eat();
    void sleep();
}

2.2 인터페이스 구현

클래스는 implements 키워드를 사용하여 인터페이스를 구현합니다.

public class Dog implements Animal {
    @Override
    public void eat() {
        System.out.println("Dog is eating");
    }

    @Override
    public void sleep() {
        System.out.println("Dog is sleeping");
    }
}

2.3 다중 인터페이스 구현

하나의 클래스는 여러 인터페이스를 구현할 수 있습니다.

public interface Runnable {
    void run();
}

public interface Swimmable {
    void swim();
}

public class Human implements Runnable, Swimmable {
    @Override
    public void run() {
        System.out.println("Human is running");
    }

    @Override
    public void swim() {
        System.out.println("Human is swimming");
    }
}

3. 결론

자바 인터페이스는 설계와 구현을 분리하고, 다형성을 제공하며, 재사용성과 확장성을 높이는 데 중요한 역할을 합니다. 인터페이스의 개념과 활용 방법을 잘 이해하면 더 나은 객체지향 설계를 할 수 있습니다.