티스토리 뷰
public 과 private는 이전에 다루었다.
그렇다면 protected란 정확히 무엇일까??
상속에서, 부모클래스를 상속받은 자식클래스는, 부모클래스에 있는 모든 변수 및 메소드에 접근이 가능하지만 딱 하나!! 접근할 수 없는게 있다.
바로 private 접근제어자가 붙은 변수와 메소드인데, private의 특성이 외부클래스에서 접근이 불가능하게 하는것이기 때문에 이해가 간다.
그럼 평소에는 private 접근제어자가 붙은것 처럼 사용되다가, 상속받은 자식 클래스에서 만큼은 public 처럼 동작하게 하고 싶을떄는 어떻게 할까?
답은 protected 이다.
protected 접근제어자는 평소에는 private 처럼 변수나 메소드가 타 클래스에서 직접적으로 . 을 이용해 호출하는 것을 막지만, 자신을 상속받은 자식 클래스에게는 public 처럼 . 으로 호출 가능하게 해준다.
접근제어자 정리
접근제어자 명 | 접근가능한 범위 (변수 & 메소드) |
private | 해당 변수, 메소드가 선언된 class 내에서만 접근가능 |
default | private 범위 + 같은 패키지를 공유하는 모든 클래스에서 접근가능 |
protected | default 범위 + 해당 클래스를 상속받은 외부 패키지의 모든 클래스에서 접근가능 |
public | 어떤 클래스든지 접근 가능 |
'Java' 카테고리의 다른 글
Hello World! (0) | 2017.02.06 |
---|---|
추상클래스 vs 인터페이스 (0) | 2017.02.06 |
스태틱 메모리 생성시점 (0) | 2017.02.06 |
자바 접근제어 private와 public 구체적인 예 (0) | 2017.02.06 |
메소드에 변수값을 전달 vs 객체 자체를 전달 (0) | 2017.02.06 |
댓글