더북(TheBook)

3.1.2 인터페이스 구현


이번에는 average 메서드에 사용할 수 있는 클래스들을 살펴보자. 이 클래스들은 IntSequence 인터페이스를 구현(implement)해야 한다. 먼저 SquareSequence 클래스를 만들어 보자.

public class SquareSequence implements IntSequence {

    private int i;


    public boolean hasNext() {

        return true;

    }


    public int next() {

        i++;

        return i * i;

    }

}


무수히 많은 사각형이 있어도 이 클래스의 객체 하나면 모든 사각형을 하나씩 방문할 수 있다(예제를 간략하게 유지할 수 있도록 정수 오버플로(연습문제 6 참고)는 무시한다).

implements 키워드는 SquareSequence 클래스가 IntSequence 인터페이스를 따른다는 의미다.

icon Caution

인터페이스를 구현하는 클래스는 인터페이스의 메서드를 반드시 public으로 선언해야 한다. 그렇지 않으면 클래스의 메서드는 기본적으로 패키지 접근이 된다. 하지만 인터페이스는 공개 접근을 요구하므로 컴파일러가 오류를 보고할 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.