접근 제한자는 public, protected, default, private 네 종류가 있다.
protected는 public과 default 접근 제한의 중간쯤에 해당한다.
같은 패키지내에서 default와 같이 접근 제한이 없지만, 다른 패키지에서는 하위 클래스만 접근을 허용한다.
pacage package1;
public class A{
protected String field;
protected A(){
}
proteted void method() {
}
}
package package1;
public class B{
public void method(){
public void method{
A a = new A();
a.field = "value";
a.method();
}
}
}
같은 패키지내에서는 B클래스가 상속하지 않아도, A클래스 객체만 생성하면 protected필드, 생성자, 메소드에 접근할 수 있다.
package package2;
import package1.A;
public class C{
public void method(){
A a = new A(); //x
a.field= "value"; //x
a.method(); //x
}
}
다른 패키지에서는 protected된 필드, 생성자, 메소드에 접근할 수 없다.
다만 상속한 경우엔 접근할 수 있다.
package package2;
import package1.A;
public class D extends A{
public D(){
super();
this.field = value;
this.method();
}
}
반응형
'Java' 카테고리의 다른 글
상속 : 추상 클래스 (0) | 2021.03.07 |
---|---|
상속 : 타입 변환과 다형성 (0) | 2021.03.07 |
상속 : final 클래스와 final 메소드 (0) | 2021.03.07 |
상속 : 메소드 재정의(오버라이딩) (0) | 2021.03.07 |
상속 : 상속의 개념 (0) | 2021.03.07 |
Uploaded by Notion2Tistory v1.1.0