열렬히.뛰기

인터페이스

Language > 프로그래밍 언어 > Java > 인터페이스

인터페이스란?

추상클래스의 한 종류. 단, 추상메소드와 상수만 가질 수 있다.

상속할 때는 implements 라는 단어를 쓴다.

주로 able이라는 단어로 끝나는 경우가 많다.

예시

인터페이스는 다음과 같이 자신을 상속시켜 활성화할 수 있다.

java
interface libft_able {
    abstract int ft_strchr (String s, char c);
    abstract int length (String t);
}

// 전체를 활성화시킨 경우
class libft implements libft_able {
    int ft_strchr (String s, char c) {
        return s.contains(c);
    }

    int length(String t) {
        return String.length();
    }
}

일부만 활성화시킬 수도 있는데, 이 때 상속받는 클래스는 추상클래스가 된다.

java
interface libft_able {
    abstract int ft_strchr (String s, char c);
    abstract int length (String t);
}

// 일부만 활성화시킨 경우
abstract class libft_abst implements libft_able {
    int ft_strchr (String s, char c) {
        return s.contains(c);
    }
}

왜 인터페이스를 쓰는가?

  1. 개발시간 단축

    인터페이스 속 메소드의 내용을 몰라도 미리 개발 가능.

    예를 들어 ft_strdup()을 만든다고 가정하면, ft_strlen()을 안 만들어도 그 껍데기만 가지고 일단 설계하고, 나중에 ft_strlen()을 만들면 된다.

  2. 표준화 가능

    프로젝트의 기본 틀을 인터페이스로 짬으로써, 일관된 개발 가능

  3. 관계 없는 클래스들을 엮기

    서로 상속관계도 아니고, 같은 조상클래스를 가지고 있지 않은 경우에도 같은 인터페이스를 사용하게 해, 관계를 맺게 해 줄 수 있다.

  4. 독립적인 프로그래밍 가능

    선언과 구현이 분리되어 있으므로, 한 클래스의 변경이 다른 클래스에 영향을 끼치게 하지 않을 수 있음.