접근제어지시자

접근제어지시자는 멤버 또는 클래스에 사용되어 해당하는 멤버나 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 합니다.

참고

private의 경우

private멤버나 메소드를 가지고 있는 클래스를 A라고 정의합니다.

B라는 클래스가 A를 상속받을 때 B클래스는 private로 선언된 멤버 혹은 메소드에 접근할 수 없습니다. 즉, 상속을 받더라도 private멤버는 직접 접근할 수 없습니다.

protected의 경우

마찬가지로 B가 A를 상속받더라도 멤버 혹은 메소드에 접근할 수 있습니다. 다른 패키지에 선언되었더라도 A클래스의 멤버에 접근할 수 있습니다.

하지만 A클래스를 상속받지않은 다른 패키지의 클래스는 접근할 수 없습니다.

정리

private와 protected는 멤버나 메소드의 접근을 제한하기 위한 접근제어지시자입니다. 다만 차이점은 private는 반드시 해당 멤버를 선언한 클래스만이 접근할 수 있으며, protected는 해당클래스, 상속된 클래스, 같은 패키지내 클래스에서의 접근이 허용된다는 것입니다.