더북(TheBook)

그런데 만약 이때 AccessObjExamAccessObj를 상속하고 있었다면 protectedp2는 에러가 발생하지 않습니다. 접근 제한자 protected는 서로 다른 패키지라도 상속받은 자식 클래스에서는 접근할 수 있기 때문입니다.

package 다른 패키지;

public class AccessObjExam {

    public static void main(String[] args) {
        AccessObj obj = new AccessObj();
        System.out.println(obj.p);
        System.out.println(obj.p2); 
        System.out.println(obj.i);  // 컴파일 오류가 발생합니다.
        System.out.println(obj.k);  // 컴파일 오류가 발생합니다.
    }
}

 

접근 제한자는 필드뿐 아니라 메서드와 클래스 앞에 붙여 사용할 수도 있습니다. 이처럼 접근 제한자에 따라서 해당 클래스나 해당 필드, 메서드에 어디까지 접근해 사용할 수 있게 할 것인지 정의할 수 있습니다.

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