본문 바로가기

Java

상속 : Protected 접근 제한자

접근 제한자는 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