Java 인터페이스

이은엽·2023년 5월 10일
0

Interface

- 클래스와 관련된 추상적인 개념
- 클래스가 가져야 하는 메소드의 시그니처를 정의하는 역할
- 메소드들의 집합으로 구성
- 클래스는 인터페이스의 모든 메소드를 구현해야 한다.
- 클래스와 달리 멤버 변수를 가질 수 ㅇ벗다.
- 기본적으로 모든 메소드는 추상 메소드로 선언된다.
- 즉, 구체적인 구현을 갖지 않고, 메소드의 시그니처만 정의

다형성(Polymorphism)

- 인터페이스는 클래스들 간의 다형성을 구현하기 위한 중요한 개념이다.
- 클래스가 특정 인터페이스를 구현할 때, 해당 클래스는 인터페이스의 모든 메소드를 구현
- 다양한 클래스가 동일한 인터페이스를 구현함으로써, 동일한 인터페이스를 사용하는 코드는 각각 다른 클래스의 인스턴스를 대체하여 사용

예제 코드

public interface MyInterface {
    // 추상 메서드 선언
    void method1();
    int method2(String str);
    
    // 상수 선언
    int CONSTANT = 100;
    
    // 디폴트 메서드
    default void defaultMethod() {
        // 구현 내용
    }
    
    // 정적 메서드
    static void staticMethod() {
        // 구현 내용
    }
}
- MyInterface라는 인터페이스를 정의
- method1, method2는 추상메소드로 선언
- 클래스는 이를 구현해야 한다.
- CONSTANT라는 상수를 정의할 수 있고, 인터페이스 내부에서는 디폴드 메소드와 정적 메소드 구현까지 가능하다.

implements

- 인터페이스를 구현하는 클래스는 'implement' 키워드를 사용하여 인터페이스 구현이 가능하다.
- 클래스는 인터페이스의 모든 메서드를 구현해야한다.
- 이를 통해, 클래스는 인터페이스가 요구하는 동작을 제공

예제 코드

public interface Interface1 {
    void method1();
}

public interface Interface2 {
    void method2();
}

public class MyClass implements Interface1, Interface2 {
    public void method1() {
        // Interface1의 메서드 구현
    }
    
    public void method2() {
        // Interface2의 메서드 구현
    }
}
- 다중 상속이 가능한 인터페이스를 사용.
- MyClass 객체는 Interface1, Interface2 메소드 모두 사용가능하다.
- 코드의 재사용성과 유연성을 높인다.

0개의 댓글