본문 바로가기

프로그래밍/JAVA

자바 접근제어자

자바의 접근제어자

◇ 범위
  private < default < protected < public


private (-)
  해당 클래스 내에서만 사용
 
package friendly (class default)  
  동일 패키지 안에서만 사용

protected (#)
  동일 패키지와 해당 클래스를 상속받은 서브 클래스에서만 사용 가능

public (+) (interface default)
  모든 패키지와 클래스에서 사용 가능.


◇ 메소드 오버라이딩과 접근제어자와의 관계?
  메소드 오버라이딩 시에, 상속받아서 구현한 오버라이딩 된 메소드는 상위 클래스의 해당 메소드의
  접근제어자와 반드시 같을 필요는 없는지만, 범위가 같거나 넓은 범위로 정해야 한다.


◇ 클래스의 public과 default (클래스는 private, protected는 없음)
  public 클래스는 파일명과 동일해야 함. (접근의 제어와는 조금 다름.)