Java 클래스의 보호 속성을 동일한 패키지의 다른 클래스에서 액세스 할 수있는 이유는 무엇입니까?동일한 패키지의 다른 클래스에서 보호 속성을 액세스 할 수있는 이유
나는 상속을 통해서만 액세스 할 수 있다고 생각했습니다.
A.java
package abc;
class A {
protected int attr1;
}
B.java
package abc;
class B {
B() {
A obj = new A();
obj.attr1 = 2;
}
public static void main(String[] args) {
B obj2 = new B();
}
}
당신이 물어 보는 이유는 '비공개'가시성 수정 기호가있는 이유입니다. 'protected'는 같은 패키지에있는 클래스들을위한 것입니다. –
@DrewKennedy 아니요. 기본 공개 설정 (즉, '비공개', '공개', '보호'없음)은 package-private입니다. 'protected '는 (AFAIK) 서브 클래스 만이 그것에 접근 할 수 있음을 의미합니다. 그것은 패키지 개인이 아닙니다. –
@newbiedoodle Protected는 하위 클래스 만 액세스 할 수 있음을 의미하지 않습니다. –