인터페이스의 접근 제어자

추상 클래스의 추상 메서드는 protected 키워드 가능
- 상속 받는 클래스에서 호출 및 구현 가능

주류 언어에서 인터페이스의 모든 메서드는 public
- 헤더 파일의 함수 선언은 전역적인 것과 유사하다고 개념적으로 이해할 것

인터페이스 자체가 패키지 접근 제한을 가짐
- 인터페이스에 선언한 추상 메서드는 항상
public으로 간주

ConsoleLogger 클래스는 public 접근 제어자를 가정
- 외부인
academy.pocu.server패키지에서 개체 생성할 수 있음
ConsoleLogger 클래스에서 log() 메서드를 오버라이딩하면서 public 접근 제어자를 붙였음
- 외부에서
log()메서드 호출 가능
academy.pocu.server.Receiver 클래스에서 import academy.pocu.ILoggable;로 임포트 불가능
ILoggable인터페이스는 패키지 접근 제어자이기 때문
academy.pocu.server.Receiver 클래스는 academy.pocu 패키지에 속하지 않음
processData()메서드의 매개변수로ILoggable인터페이스를 사용하려고 하면 컴파일 오류 발생ILoggable인터페이스는 패키지 접근 제어자이기 때문
인터페이스를 내부 용도로 사용하고 외부에 보여주고 싶지 않을 때 패키지 접근 제어자를 사용
- 여기서 중요한 것은 패키지 접근 제어자가 붙은 인터페이스를 상속한 클래스의 접근 제어자는 별개로 적용
ConsoleLogger클래스가public접근 제어자를 가진 것