Java:액세스 수정이 더 제한적인 것보다'보호',보 다 제한이 적을 경우,더욱 엄격한'개'?

StackOverflow https://stackoverflow.com/questions/1415412

문제

내가 원하는 비슷한 protected, 는 클래스를 구현하는 protected 분야 및 하위 클래스에 액세스할 수 있습니다.

그래서 나는 할 수 있어야에 변수를 선언하는 기본 클래스 private, 지만,여전히 수 있에서 액세스할 수 있는 서브 클래스.

아마도 이것은 아주 자연의 서브 클래스, private, 고/또는 protected.

가 이와 같은 존재하에서 Java?

도움이 되었습니까?

해결책

Java에는 필드에 대한 4 개의 액세스 레벨 만 있습니다.

  • private
  • 패키지-프라이버시 (기본값; 액세스 수정자가 없음)
  • protected
  • public

protected 하위 클래스, 동일한 패키지의 다른 클래스 및 클래스 자체의 멤버가 액세스 할 수 있도록 허용합니다. protected 회원.

짧은 대답은 원하는 것을 정확하게 달성 할 수있는 방법이 없다는 것입니다.

이 4 개의 액세스 수정 자에 대한 설명을 위해 수업 구성원에 대한 액세스 제어 ~에서 Java 튜토리얼 더 구체적인 정보가 있습니다.

다른 팁

을 제어하는 경우에는 코드,항상 제어할 수 있습니다 무엇으로 패키지와 함께 공공 무다-그것은 혼자가에서 패키지만 서브 클래스에 액세스할 수 있는 회원은 당신을 유지하려는 개인을 제외한 서브 클래스.

아니요, 아니요 액세스 수정 자 정확히 그렇게합니다. 그만큼 protected 수정자는 가장 가까운 것이지만, 이는 동일한 패키지뿐만 아니라 동일한 패키지 (동일한 패키지 안 또는 외부)에 필드를 노출시킵니다.

불가능합니다. U는 여전히 변수를 비공개로 선언 한 다음 슈퍼 클래스의 변수를 수정하는 공개 메소드를 선언 할 수 있습니다. 그런 다음 변수에서 공개 메소드를 호출합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top