접근 제어
접근 제어
- 4개 방법이 있다.
- private : 현재 클래스
- (default) : 현재 클래스 + 같은 패키지
- protected : 현재 클래스 + 같은 패키지 + 서브 클래스
- public : 모두
- 원칙은 무조건 private로 만들고 공개할 대상만 public으로 한다.
- 필요에 따라 default나 protected로 변경한다.
- 접근 권한이 없는 메서드는 오버라이딩이 불가능하다.
- 오버라이딩 메서드의 접근 범위를 확대하는 것은 괜찮다.
- private는 오버라이딩 자체가 불가능하기 때문에 접근 범위를 확대할 수 없다.
- 오버라이딩 할 때 원본보다 접근 범위를 좁힐수는 없다. 즉, 수퍼 클래스의 메서드를 자식 클래스가 재정의 할 때 접근 범위를 확대할 수는 있지만 좁힐수는 없다.