정의 된 클래스를 상속받지 않는 클래스가 보호 된 메서드에 액세스 할 수 있다는 사실은 항상 나를 귀찮게했습니다. 서브 클래스가 기능의 일부를 정의 할 수 있도록 추상 클래스에서 추상 보호 메소드를 사용합니다. 실제로 이것은 private 메소드입니다. 클래스 계층 구조 외부에서 호출되는 것은 아닙니다. 그러나 Java는 패키지의 모든 클래스에서 보호 된 메서드를 호출 할 수 있으므로이 말을 전달하지 않습니다.비 - 하위 클래스에서 Java로 보호 된 메서드에 액세스 할 충분한 이유가 있습니까?
제 질문은 이것을 허용하는 디자인 근거가 무엇입니까? 패키지 또는 패키지 외부의 무작위 하위 클래스에서만 호출 할 수있는 메소드를 필요로하는 유효한 유스 케이스가 있습니까? 나는이 사건을 본 적이 없으며 다른 이들이 있는지 궁금해하고 있습니다.
가능한 복제본 [Java의 "protected"한정자가 같은 패키지의 다른 클래스에 대한 액세스를 허용하는 이유는 무엇입니까?] (http://stackoverflow.com/questions/902922/why-does-the-protected-modifier-in -java-allow-other-classes-in-same) –