티스토리 뷰

Java

protected 란? (접근제어자)

deerfrd 2017. 2. 6. 13:11


public 과 private는 이전에 다루었다.

그렇다면 protected란 정확히 무엇일까??


상속에서, 부모클래스를 상속받은 자식클래스는, 부모클래스에 있는 모든 변수 및 메소드에 접근이 가능하지만 딱 하나!! 접근할 수 없는게 있다.

바로 private 접근제어자가 붙은 변수와 메소드인데, private의 특성이 외부클래스에서 접근이 불가능하게 하는것이기 때문에 이해가 간다.


그럼 평소에는 private 접근제어자가 붙은것 처럼 사용되다가, 상속받은 자식 클래스에서 만큼은 public 처럼 동작하게 하고 싶을떄는 어떻게 할까?


답은 protected 이다.


protected 접근제어자는 평소에는 private 처럼 변수나 메소드가 타 클래스에서 직접적으로 . 을 이용해 호출하는 것을 막지만, 자신을 상속받은 자식 클래스에게는 public 처럼 . 으로 호출 가능하게 해준다.


접근제어자 정리

접근제어자 명

접근가능한 범위 (변수 & 메소드)

private

해당 변수, 메소드가 선언된 class 내에서만 접근가능

default 

private 범위 + 같은 패키지를 공유하는 모든 클래스에서 접근가능

protected

default 범위 + 해당 클래스를 상속받은 외부 패키지의 모든 클래스에서 접근가능

public

어떤 클래스든지 접근 가능


댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함