지금을 사는 사람

[Java] 인터페이스 (Interface) 본문

Java

[Java] 인터페이스 (Interface)

지금회 2023. 12. 26. 10:18
728x90

1. **Interface(인터페이스)란?

자바에서의 인터페이스는 추상화의 한 형태로, 클래스가 어떤 메서드를 구현해야 하는지를 정의하는데 사용됩니다. 인터페이스는 클래스와는 달리 다중 상속이 가능하며, 클래스에 비해 더 높은 수준의 추상화를 제공합니다.

public interface MyInterface {
    void myMethod();  // 메서드 선언, 구현은 없음
}

2. Interface의 특징:

  • 추상 메서드와 상수:
    • 인터페이스는 추상 메서드(구현이 없는 메서드)와 상수(자동으로 public static final로 간주)를 가질 수 있습니다.
  • 다중 상속:
    • 클래스가 여러 인터페이스를 구현할 수 있어, 다중 상속의 효과를 가져옵니다.
  • 인터페이스 간 상속:
    • 인터페이스도 다른 인터페이스를 상속받을 수 있습니다.
  • default 및 static 메서드:
    • Java 8부터는 default 메서드와 static 메서드를 인터페이스에 추가할 수 있게 되었습니다.

3. Interface의 사용:

  • 인터페이스 구현:
    • 인터페이스를 구현하는 클래스에서는 implements 키워드를 사용하여 구현합니다.
public class MyClass implements MyInterface {
    @Override
    public void myMethod() {
        // 구현 내용
    }
}
  • 다중 인터페이스 구현:
    • 하나의 클래스가 여러 개의 인터페이스를 구현할 수 있습니다.
public class MyOtherClass implements MyInterface, AnotherInterface {
    // myMethod()와 다른 인터페이스의 메서드들을 구현
}
  • 인터페이스 간 상속:
    • 인터페이스도 다른 인터페이스를 상속받을 수 있습니다.
public interface AnotherInterface extends MyInterface {
    // MyInterface의 메서드를 상속받음
    void anotherMethod();
}

4. default 및 static 메서드 사용:

Java 8부터 인터페이스에서는 default 메서드와 static 메서드를 정의할 수 있습니다.

  • default 메서드:
    • 인터페이스에서 기본적인 구현을 제공할 수 있습니다.
public interface MyInterface {
    default void myDefaultMethod() {
        // 기본 구현
    }
}
  • static 메서드:
    • 인터페이스에서 정적 메서드를 제공할 수 있습니다.
public interface MyInterface {
    static void myStaticMethod() {
        // 정적 메서드 구현
    }
}

5. Interface 사용의 Best Practices:

  • 의미 있는 이름:
    • 인터페이스와 메서드에는 의미 있는 이름을 사용하여 코드의 가독성을 높입니다.
  • 단일 책임 원칙:
    • 각 인터페이스는 특정 역할이나 책임을 가져야 합니다.
  • 인터페이스의 버전 관리:
    • 새로운 메서드가 필요할 경우 인터페이스를 새로 만들어 기존 코드를 수정하지 않고 버전을 업데이트할 수 있습니다.

6. 결론:

Java에서의 인터페이스는 다형성과 추상화를 제공하는 강력한 도구입니다. 다중 상속을 지원하고, default 및 static 메서드를 통해 더 유연한 디자인을 가능케 합니다. 적절한 인터페이스 사용은 코드의 확장성과 유지보수성을 높이는 데 기여합니다.

 

728x90