Java에서 개인용 액세스 수정자는 매우 제한적이어서 정의 된 클래스 내에서만 액세스 할 수 있습니다.Java에서 개인 메소드 액세스
예제를 고려하십시오. 여기
package x;
public class Boom {
protected String name;
public Boom() {
}
private void aConfidentialInfo(){
System.out.println("Some confidential information...");
}
protected void display(){
System.out.println("In display method..");
aConfidentialInfo();
}
}
package y;
import x.Boom;
public class Hack extends Boom{
public Hack{
display();
}
}
나는 그것을 클래스 Boom
의 개인 구성원 aConfidentialInfo
다음 디스플레이를 호출, 클래스 Hack
을 실행할 때. Hack
클래스는 Boom
클래스의 전용 멤버에 어떻게 액세스 할 수 있습니까? 사적인 접근 수정 자의 침해가 아닌가? 어떻게 알맞은 추론으로 이것을 이해하고 설명 할 수 있습니까?
ConfidentialInfo()에 직접 액세스 할 수 없습니다. * CAN *에 액세스 할 수 있습니다(). display()가 하나의 컨텍스트 (기본 클래스에서 호출 될 때)에 기능을 가지고 있다면, (파생 클래스의) 다른 컨텍스트에서 호출 될 때 왜 다른 기능을 가지기를 기대할 수 있습니까? 이 그림에는 전혀 잘못된 것이 없습니다. :) – FoggyDay